Session::logcheck("environment-menu", "PolicyHosts"); // Close session write for real background loading session_write_close(); $asset_id = GET('asset_id'); $service = GET('service'); $port = GET('port'); ossim_valid($asset_id, OSS_HEX, 'illegal: ' . _('Asset ID')); ossim_valid($service, OSS_ALPHA, OSS_PUNC_EXT, 'illegal: ' . _('Service name')); ossim_valid($port, OSS_DIGIT, 'illegal: ' . _('Port number')); if (ossim_error()) { throw new Exception(ossim_get_error_clean()); } $db = new ossim_db(); $conn = $db->connect(); $filters = array('where' => "h.id = UNHEX('{$asset_id}') AND host_services.port = {$port} AND host_services.service = '" . escape_sql($service, $conn) . "'"); $_list_data = Asset_host_services::get_list($conn, $filters); $services = $_list_data[0]; if (empty($services[$asset_id][0])) { $db->close(); throw new Exception(_('Service not found')); } $service_data = $services[$asset_id][0]; $_host_aux = Asset_host::get_object($conn, $asset_id); $_ips_aux = array_keys($_host_aux->get_ips()->get_ips()); $_ctx_aux = $_host_aux->get_ctx(); $vulns = Asset_host_services::get_vulns_by_service($conn, $_ips_aux, $_ctx_aux, $service, $port); // Not matching with software_cpe, but cpe found in version field if ($service_data['cpe'] == '' && preg_match('/cpe\\:/', $service_data['version'])) { $service_data['cpe'] = $service_data['version']; $service_data['version'] = ''; }