Enterprise TruRisk™ Platform Release 10.39.2 API
August 7, 2026
In the API Release Notes, <qualys_base_url> is used as a sample API request to represent the API server URL. To learn more about the API server URL for your environment, refer to the Know Your Qualys API Server URL section.
API versioning is supported across Qualys APIs. To learn more about versioning standards and deprecation timelines, refer to the Updates on API Versioning Standards & Deprecation Timelines blog.
Qualys Vulnerability Management (VM)
Scan Authentication API: AD Secrets Engine Support for Unix/SSH Root Delegation
| New or Updated API | Updated |
| API Endpoint |
/api/3.0/fo/auth/unix |
| EOS Timeline: February 2027 | |
| EOL Timeline: August 2027 | |
| API Endpoint (New Version) |
/api/4.0/fo/auth/unix |
| Method | POST, GET |
| DTD or XSD changes | Yes |
You can now use the HashiCorp Vault Active Directory (AD) Secrets Engine when configuring Unix/SSH root delegation through the Unix authentication API. Previously, Unix/SSH root delegation did not support AD Secrets Engine integration, which prevented you from retrieving root tool passwords using AD-managed secrets through the API. This enhancement extends AD Secrets Engine support to Unix/SSH root delegation and provides a consistent experience across supported authentication types.
What's New
-
You can use the
USE_AD_HASHICORPparameter to indicate that passwords should be retrieved from the HashiCorp AD Secrets Engine. -
A key-value secret key is no longer required for password retrieval.
Expected Behaviour
- Create and update actions support Unix/SSH root delegation records configured with USE_AD_HASHICORP=1.
- When AD Secrets Engine parameter is set to 1, SECRET_KV_KEY is optional and is not required for password retrieval.
- API responses include the <VAULT_USE_AD_HASHICORP> element for Unix/SSH authentication records configured to use a HashiCorp vault with AD Secrets Engine enabled.
Sample - Create Unix Authentication Record with root delegation ADSample - Create Unix Authentication Record with root delegation AD
API Request
curl --location ' <qualys_base_url>/api/4.0/fo/auth/unix/?action=create&title=Unix_HashiCorp_AD_RootDelegation&username=<username>&password=<password>&ips=xx.xx.xx.xx\ --header 'X-Requested-With: curl demo' \ --header 'Content-type: text/xml' \ --header 'Authorization: Bearer <JWT Token>' \ <UNIX_AUTH_PARAMS> <ROOT_TOOLS> <ROOT_TOOL> <STANDARD_TYPE type="sudo"/> <PASSWORD_INFO type="vault"> <DIGITAL_VAULT> <VAULT_TYPE>HashiCorp</VAULT_TYPE> <VAULT_ID>2468704</VAULT_ID> <SECRET_KV_PATH>unix/hosts</SECRET_KV_PATH> <SECRET_KV_NAME>account_name</SECRET_KV_NAME> <USE_AD_HASHICORP>1</USE_AD_HASHICORP> </DIGITAL_VAULT> </PASSWORD_INFO> </ROOT_TOOL> </ROOT_TOOLS> </UNIX_AUTH_PARAMS>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM "
<qualys_base_url>/api/4.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2026-07-21T02:25:54Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>9439474</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
Sample - Update Unix Authentication Record with root delegation ADSample - Update Unix Authentication Record with root delegation AD
API Request
curl --location '<qualys_base_url>/api/4.0/fo/auth/unix/?action=update&ids=12839871&username=<username>&password=<password>\ --header 'X-Requested-With: curl demo' \ --header 'Content-type: text/xml' \ --header 'Authorization: Bearer <JWT Token>' \ --data ' <?xml version="1.0" encoding="UTF-8" ?> <UNIX_AUTH_PARAMS> <ROOT_TOOLS> <ROOT_TOOL> <STANDARD_TYPE type="sudo"/> <PASSWORD_INFO type="vault"> <DIGITAL_VAULT> <VAULT_TYPE>HashiCorp</VAULT_TYPE> <VAULT_ID>5306952</VAULT_ID> <SECRET_KV_PATH>unix/hosts</SECRET_KV_PATH> <SECRET_KV_NAME>updatedname</SECRET_KV_NAME> <USE_AD_HASHICORP>1</USE_AD_HASHICORP> </DIGITAL_VAULT> </PASSWORD_INFO> </ROOT_TOOL> </ROOT_TOOLS> </UNIX_AUTH_PARAMS>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM "
<qualys_base_url>/api/4.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2026-07-21T02:40:52Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>9439474</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
Sample - List Unix Authentication Records with root delegation ADSample - List Unix Authentication Records with root delegation AD
API Request
curl --location ' <qualys_base_url>/api/4.0/fo/auth/unix/?action=list' \ --header 'X-Requested-With: curl demo' \ --header 'Authorization: Bearer <JWT Token>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_UNIX_LIST_OUTPUT SYSTEM "
<qualys_base_url>/api/4.0/fo/auth/unix/dtd/auth_list_output.dtd">
<!-- This report was generated with an evaluation version of Qualys //-->
<AUTH_UNIX_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2026-07-21T02:43:57Z</DATETIME>
<AUTH_UNIX_LIST>
<AUTH_UNIX>
<ID>8679211</ID>
<TITLE>
<![CDATA[test_auth_unix_CyberArkAIMvault]]>
</TITLE>
<USERNAME>
<![CDATA[admin]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<PORT>2222</PORT>
<IP_SET>
<IP>xxx.xx.xx.xx </IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-04-28T19:18:39Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-04-28T19:18:39Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[creating auth profile for automation user1]]>
</COMMENTS>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>8972423</ID>
<TITLE>
<![CDATA[test_auth_unix]]>
</TITLE>
<USERNAME>
<![CDATA[admin]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3829135</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="basic" />
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<PORT>2222</PORT>
<IP_SET>
<IP>172.xx.xx.xx </IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-05-26T20:31:57Z</DATETIME>
<BY>scan_su</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-05-26T20:31:57Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[creating auth profile for automation user]]>
</COMMENTS>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>9006410</ID>
<TITLE>
<![CDATA[test_auth_unix_Kerberos_IP_DNSRealm]]>
</TITLE>
<USERNAME>
<![CDATA[admin]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<KERBEROS_AUTHENTICATION>1</KERBEROS_AUTHENTICATION>
<REALM_DISCOVERY>
<![CDATA[dns]]>
</REALM_DISCOVERY>
<USER_REALM>
<![CDATA[test]]>
</USER_REALM>
<USER_KDC>
<![CDATA[testtest]]>
</USER_KDC>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3839139</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="basic" />
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<PORT>2222</PORT>
<IP_SET>
<IP>xxx.xx.xx.xx</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-05-29T19:27:14Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-05-29T19:27:14Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[creating auth profile for automation user1]]>
</COMMENTS>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>9339403</ID>
<TITLE>
<![CDATA[test_auth_unix_Kerberos_IP]]>
</TITLE>
<USERNAME>
<![CDATA[admin]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<KERBEROS_AUTHENTICATION>1</KERBEROS_AUTHENTICATION>
<REALM_DISCOVERY>
<![CDATA[manual]]>
</REALM_DISCOVERY>
<USER_REALM>
<![CDATA[test]]>
</USER_REALM>
<USER_KDC>
<![CDATA[testtest]]>
</USER_KDC>
<SERVICE_REALM>
<![CDATA[test]]>
</SERVICE_REALM>
<SERVICE_KDC>
<![CDATA[test]]>
</SERVICE_KDC>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3916136</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="basic" />
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<PORT>2222</PORT>
<IP_SET>
<IP>xxx.xx.xx.xx</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-06-30T19:18:08Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-06-30T19:18:08Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[creating auth profile for automation user1]]>
</COMMENTS>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>9362189</ID>
<TITLE>
<![CDATA[test_auth_unix_Kerberos_IP_singleRealm]]>
</TITLE>
<USERNAME>
<![CDATA[admin]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<KERBEROS_AUTHENTICATION>1</KERBEROS_AUTHENTICATION>
<REALM_DISCOVERY>
<![CDATA[single]]>
</REALM_DISCOVERY>
<USER_REALM>
<![CDATA[test]]>
</USER_REALM>
<USER_KDC>
<![CDATA[testtest]]>
</USER_KDC>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3925254</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="basic" />
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<PORT>2222</PORT>
<IP_SET>
<IP>172.xx.xx.xx</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-07-03T19:19:03Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-07-03T19:19:03Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[creating auth profile for automation user1]]>
</COMMENTS>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>9439474</ID>
<TITLE>
<![CDATA[Unix_HashiCorp_AD_RootDelegation]]>
</TITLE>
<USERNAME>
<![CDATA[qualys]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3945137</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="vault">
<DIGITAL_VAULT>
<DIGITAL_VAULT_ID>
<![CDATA[2468704]]>
</DIGITAL_VAULT_ID>
<DIGITAL_VAULT_TYPE>
<![CDATA[HashiCorp]]>
</DIGITAL_VAULT_TYPE>
<DIGITAL_VAULT_TITLE>
<![CDATA[HashiCorp_Vault_AD_Test]]>
</DIGITAL_VAULT_TITLE>
<VAULT_SECRET_KV_PATH>
<![CDATA[unix/hosts]]>
</VAULT_SECRET_KV_PATH>
<VAULT_SECRET_KV_NAME>
<![CDATA[updated-root-account]]>
</VAULT_SECRET_KV_NAME>
<VAULT_USE_AD_HASHICORP>
<![CDATA[1]]>
</VAULT_USE_AD_HASHICORP>
</DIGITAL_VAULT>
</PASSWORD_INFO>
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<IP_SET>
<IP>xx.xx.xx.xx</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-07-21T02:25:54Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-07-21T02:40:52Z</DATETIME>
</LAST_MODIFIED>
</AUTH_UNIX>
<AUTH_UNIX>
<ID>9439475</ID>
<TITLE>
<![CDATA[Unix_HashiCorp_AD_RootDelegation1]]>
</TITLE>
<USERNAME>
<![CDATA[qualys]]>
</USERNAME>
<SKIP_PASSWORD>0</SKIP_PASSWORD>
<CLEARTEXT_PASSWORD>0</CLEARTEXT_PASSWORD>
<TARGET_TYPE>
<![CDATA[Auto (default)]]>
</TARGET_TYPE>
<ROOT_TOOL_INFO_LIST>
<ROOT_TOOL_INFO>
<ID>3945136</ID>
<ROOT_TOOL>Sudo</ROOT_TOOL>
<PASSWORD_INFO type="vault">
<DIGITAL_VAULT>
<DIGITAL_VAULT_ID>
<![CDATA[2468704]]>
</DIGITAL_VAULT_ID>
<DIGITAL_VAULT_TYPE>
<![CDATA[HashiCorp]]>
</DIGITAL_VAULT_TYPE>
<DIGITAL_VAULT_TITLE>
<![CDATA[HashiCorp_Vault_AD_Test]]>
</DIGITAL_VAULT_TITLE>
<VAULT_SECRET_KV_PATH>
<![CDATA[unix/hosts]]>
</VAULT_SECRET_KV_PATH>
<VAULT_SECRET_KV_NAME>
<![CDATA[root-account]]>
</VAULT_SECRET_KV_NAME>
<VAULT_USE_AD_HASHICORP>
<![CDATA[1]]>
</VAULT_USE_AD_HASHICORP>
</DIGITAL_VAULT>
</PASSWORD_INFO>
</ROOT_TOOL_INFO>
</ROOT_TOOL_INFO_LIST>
<IP_SET>
<IP>xx.xx.xx.xx</IP>
</IP_SET>
<LOGIN_TYPE>
<![CDATA[vault]]>
</LOGIN_TYPE>
<DIGITAL_VAULT>
<DIGITAL_VAULT_ID>
<![CDATA[2468704]]>
</DIGITAL_VAULT_ID>
<DIGITAL_VAULT_TYPE>
<![CDATA[HashiCorp]]>
</DIGITAL_VAULT_TYPE>
<DIGITAL_VAULT_TITLE>
<![CDATA[HashiCorp_Vault_AD_Test]]>
</DIGITAL_VAULT_TITLE>
<VAULT_SECRET_KV_PATH>
<![CDATA[unix/hosts]]>
</VAULT_SECRET_KV_PATH>
<VAULT_SECRET_KV_NAME>
<![CDATA[login-account]]>
</VAULT_SECRET_KV_NAME>
<VAULT_SECRET_KV_KEY>
<![CDATA[password]]>
</VAULT_SECRET_KV_KEY>
<VAULT_USE_AD_HASHICORP>
<![CDATA[0]]>
</VAULT_USE_AD_HASHICORP>
</DIGITAL_VAULT>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2026-07-21T02:32:11Z</DATETIME>
<BY>scan_at</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2026-07-21T02:32:11Z</DATETIME>
</LAST_MODIFIED>
</AUTH_UNIX>
</AUTH_UNIX_LIST>
</RESPONSE>
</AUTH_UNIX_LIST_OUTPUT>
Sample - Delete Unix Authentication Records with root delegation ADSample - Delete Unix Authentication Records with root delegation AD
API Request
curl --location --request POST '
<qualys_base_url>/api/4.0/fo/auth/unix/?action=delete&ids=9439475' \
--header 'X-Requested-With: curl demo' \
--header 'Authorization: Bearer <JWT Token>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM "
<qualys_base_url>/api/4.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2026-07-21T02:49:33Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Deleted</TEXT>
<ID_SET>
<ID>9439475</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
DTD OutputDTD Output
A DTD for Scan Authentication API has been added.
<platform API server>/4.0/fo/auth/unix/dtd/auth_list_output.dtd.dtd
DTD output for Scan Authentication API is as follows:
DTD Output
<!-- QUALYS AUTH_UNIX_LIST_OUTPUT DTD -->
<!ELEMENT AUTH_UNIX_LIST_OUTPUT (REQUEST?, RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT RESPONSE (DATETIME, (AUTH_UNIX_LIST|ID_SET)?, WARNING_LIST?, GLOSSARY?)>
<!ELEMENT AUTH_UNIX_LIST (AUTH_UNIX+)>
<!ELEMENT AUTH_UNIX (ID, TITLE, USERNAME, SKIP_PASSWORD?, CLEARTEXT_PASSWORD?, TARGET_TYPE?, KERBEROS_AUTHENTICATION?, REALM_DISCOVERY?, USER_REALM?, USER_KDC?, SERVICE_REALM?, SERVICE_KDC?, KERBEROS_LOGIN_INFO?, (ROOT_TOOL?|ROOT_TOOL_INFO_LIST?), ((RSA_PRIVATE_KEY?, DSA_PRIVATE_KEY?)|PRIVATE_KEY_CERTIFICATE_LIST?), PORT?, IP_SET?, IPV6_SET?, TAGS?, LOGIN_TYPE?, DIGITAL_VAULT?, NETWORK_ID?, CREATED, LAST_MODIFIED, COMMENTS?, USE_AGENTLESS_TRACKING?, AGENTLESS_TRACKING_PATH?, QUALYS_SHELL?)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT USERNAME (#PCDATA)>
<!ELEMENT SKIP_PASSWORD (#PCDATA)>
<!ELEMENT CLEARTEXT_PASSWORD (#PCDATA)>
<!ELEMENT TARGET_TYPE (#PCDATA)>
<!ELEMENT KERBEROS_AUTHENTICATION (#PCDATA)>
<!ELEMENT REALM_DISCOVERY (#PCDATA)>
<!ELEMENT USER_REALM (#PCDATA)>
<!ELEMENT USER_KDC (#PCDATA)>
<!ELEMENT SERVICE_REALM (#PCDATA)>
<!ELEMENT SERVICE_KDC (#PCDATA)>
<!ELEMENT KERBEROS_LOGIN_INFO (DIGITAL_VAULT?)>
<!ATTLIST KERBEROS_LOGIN_INFO type (basic|vault) "basic">
<!ELEMENT ROOT_TOOL (#PCDATA)>
<!ELEMENT ROOT_TOOL_INFO_LIST (ROOT_TOOL_INFO)*>
<!ELEMENT RSA_PRIVATE_KEY EMPTY>
<!ELEMENT DSA_PRIVATE_KEY EMPTY>
<!ELEMENT PRIVATE_KEY_CERTIFICATE_LIST (PRIVATE_KEY_CERTIFICATE)*>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT IP_SET (IP|IP_RANGE)+>
<!ELEMENT IP (#PCDATA)>
<!ELEMENT IP_RANGE (#PCDATA)>
<!ELEMENT IPV6_SET (IPV6|IPV6_RANGE)+>
<!ELEMENT IPV6 (#PCDATA)>
<!ELEMENT IPV6_RANGE (#PCDATA)>
<!ELEMENT TAGS (TAG_TYPE, TAGS_INCLUDE, TAGS_EXCLUDE?)>
<!ELEMENT TAG_TYPE (#PCDATA)>
<!ELEMENT TAGS_INCLUDE (SELECTOR, TAG+)>
<!ELEMENT SELECTOR (#PCDATA)>
<!ELEMENT TAG (ID, NAME)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT TAGS_EXCLUDE (SELECTOR, TAG?)>
<!ELEMENT LOGIN_TYPE (#PCDATA)>
<!ELEMENT NETWORK_ID (#PCDATA)>
<!ELEMENT CREATED (DATETIME, BY)>
<!ELEMENT BY (#PCDATA)>
<!ELEMENT LAST_MODIFIED (DATETIME)>
<!ELEMENT COMMENTS (#PCDATA)>
<!ELEMENT USE_AGENTLESS_TRACKING (#PCDATA)>
<!ELEMENT AGENTLESS_TRACKING_PATH (#PCDATA)>
<!ELEMENT QUALYS_SHELL (ENABLED, LOG_FACILITY?)>
<!ELEMENT ROOT_TOOL_INFO (ID, ROOT_TOOL, PASSWORD_INFO?)>
<!ELEMENT PASSWORD_INFO (DIGITAL_VAULT?)>
<!ATTLIST PASSWORD_INFO type (basic|vault) "basic">
<!-- Private key contents will never be rendered -->
<!ELEMENT PRIVATE_KEY_CERTIFICATE (ID, PRIVATE_KEY_INFO, PASSPHRASE_INFO, CERTIFICATE?)+>
<!ELEMENT PRIVATE_KEY_INFO (PRIVATE_KEY|DIGITAL_VAULT)>
<!ATTLIST PRIVATE_KEY_INFO type (basic|vault) "basic">
<!-- Private key/Certificate contents will never be rendered -->
<!ELEMENT PRIVATE_KEY EMPTY>
<!ATTLIST PRIVATE_KEY type (rsa|dsa|ecdsa|ed25519|pkcs8) #REQUIRED>
<!ELEMENT PASSPHRASE_INFO (DIGITAL_VAULT?)>
<!ATTLIST PASSPHRASE_INFO type (basic|vault) "basic">
<!ELEMENT CERTIFICATE EMPTY>
<!ATTLIST CERTIFICATE type (x.509|openssh) #REQUIRED>
<!ELEMENT DIGITAL_VAULT (DIGITAL_VAULT_ID, DIGITAL_VAULT_TYPE, DIGITAL_VAULT_TITLE, VAULT_USERNAME?, VAULT_FOLDER?, VAULT_FILE?, VAULT_SECRET_NAME?, VAULT_SYSTEM_NAME?, VAULT_RESOURCE_ID?, VAULT_EP_NAME?, VAULT_EP_TYPE?, VAULT_EP_CONT?, VAULT_NS_TYPE?, VAULT_NS_NAME?, VAULT_ACCOUNT_NAME?, VAULT_AUTHORIZATION_NAME?, VAULT_TARGET_NAME?, VAULT_SECRET_KV_PATH?, VAULT_SECRET_KV_NAME?, VAULT_SECRET_KV_KEY?, VAULT_USE_AD_HASHICORP?, VAULT_DEVICE_NAME?, VAULT_DEVICE_HOST?, VAULT_APP_NAME?, VAULT_SERVICE_TYPE?)>
<!ELEMENT DIGITAL_VAULT_ID (#PCDATA)>
<!ELEMENT DIGITAL_VAULT_TYPE (#PCDATA)>
<!ELEMENT DIGITAL_VAULT_TITLE (#PCDATA)>
<!ELEMENT VAULT_USERNAME (#PCDATA)>
<!ELEMENT VAULT_FOLDER (#PCDATA)>
<!ELEMENT VAULT_FILE (#PCDATA)>
<!ELEMENT VAULT_SECRET_NAME (#PCDATA)>
<!ELEMENT VAULT_SYSTEM_NAME (#PCDATA)>
<!ELEMENT VAULT_RESOURCE_ID (#PCDATA)>
<!ELEMENT VAULT_EP_NAME (#PCDATA)>
<!ELEMENT VAULT_EP_TYPE (#PCDATA)>
<!ELEMENT VAULT_EP_CONT (#PCDATA)>
<!ELEMENT VAULT_NS_TYPE (#PCDATA)>
<!ELEMENT VAULT_NS_NAME (#PCDATA)>
<!ELEMENT VAULT_ACCOUNT_NAME (#PCDATA)>
<!ELEMENT VAULT_AUTHORIZATION_NAME (#PCDATA)>
<!ELEMENT VAULT_TARGET_NAME (#PCDATA)>
<!ELEMENT VAULT_SECRET_KV_PATH (#PCDATA)>
<!ELEMENT VAULT_SECRET_KV_NAME (#PCDATA)>
<!ELEMENT VAULT_SECRET_KV_KEY (#PCDATA)>
<!ELEMENT VAULT_USE_AD_HASHICORP (#PCDATA)>
<!ELEMENT VAULT_DEVICE_NAME (#PCDATA)>
<!ELEMENT VAULT_DEVICE_HOST (#PCDATA)>
<!ELEMENT VAULT_APP_NAME (#PCDATA)>
<!ELEMENT VAULT_SERVICE_TYPE (#PCDATA)>
<!ELEMENT ENABLED (#PCDATA)>
<!ELEMENT LOG_FACILITY (#PCDATA)>
<!ELEMENT WARNING_LIST (WARNING+)>
<!ELEMENT WARNING (CODE?, TEXT, URL?, ID_SET?)>
<!ELEMENT CODE (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>
<!ELEMENT URL (#PCDATA)>
<!ELEMENT ID_SET (ID|ID_RANGE)+>
<!ELEMENT ID_RANGE (#PCDATA)>
<!ELEMENT GLOSSARY (USER_LIST?)>
<!ELEMENT USER_LIST (USER+)>
<!ELEMENT USER (USER_LOGIN, FIRST_NAME, LAST_NAME)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!-- EOF -->
Cloud Perimeter Scan Support for Oracle Cloud Infrastructure
| New or Updated API | Updated |
| API Endpoint |
/api/4.0/fo/scan/cloud/perimeter/job/ /api/5.0/fo/asset/host/ /api/5.0/fo/asset/host/vm/detection/ |
| EOS Timeline: February 2027 | |
| EOL Timeline: August 2027 | |
| API Endpoint (New Version) |
/api/6.0/fo/asset/host/ /api/6.0/fo/asset/host/vm/detection/ |
| Method | POST, GET |
| DTD or XSD changes | Yes |
You can now launch Cloud Perimeter Scans for Oracle Cloud Infrastructure (OCI) assets and retrieve OCI-specific asset metadata through supported APIs. Previously, Cloud Perimeter Scan and cloud asset visibility were available for AWS, Azure, and GCP environments. This enhancement extends API support to OCI, enabling you to discover, scan, and track OCI assets using existing Qualys workflows. This helps to retrieve OCI cloud asset details for improved asset tracking and inventory management. Also, automate vulnerability assessment of publicly exposed OCI resources through Cloud Perimeter Scan API.
The Host List API response now include OCI cloud asset information for tracked OCI assets, including:
CLOUD_PROVIDER
CLOUD_SERVICE
CLOUD_RESOURCE_ID
The Host Detection API now includes OCI cloud perimeter metadata for supported API versions, enabling you to identify and assess OCI assets discovered through Cloud Perimeter Scans. OCI metadata is returned in the API response through OCI-specific metadata elements and cloud resource information.
Sample - Create OCI Cloud Perimeter ScanSample - Create OCI Cloud Perimeter Scan
API Request
curl --location --request POST '<qualys_base_url>/api/4.0/fo/scan/cloud/perimeter/job/?action=create&module=vm&configured_from_source=connector_module&source_scan_type=custom&schedule=now&active=1&cloud_provider=oci&cloud_service=compute_instance&include_lb_from_connector=0&connector_uuid=<connector_uuid>&option_id=<option_id>&scan_title=<scan_title>' \ --header 'Accept: */*' \ --header 'X-Requested-With: NONE' \ --header 'Content-Length: 0' \ --header 'Authorization: Bearer <JWT Token>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "<qualys_base_url>/api/4.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2026-08-03T11:47:25Z</DATETIME>
<TEXT>Scan has been created successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>7663224</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Sample - Display the list of all the hosts for OCI tracked assets using host list APISample - Display the list of all the hosts for OCI tracked assets using host list API
API Request
curl --location '<qualys_base_url>/api/6.0/fo/asset/host/?action=list&host_metadata=oci&details=All' \ --header 'X-Requested-With: curl' \ --header 'Authorization: <JWT Token>'
API Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE HOST_LIST_OUTPUT SYSTEM "
<qualys_base_url>/api/6.0/fo/asset/host/dtd/list/output.dtd">
<HOST_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2026-07-31T12:38:15Z</DATETIME>
<HOST_LIST>
<HOST>
<ID>17663907</ID>
<IP>xx.xxx.xx.xxx</IP>
<TRACKING_METHOD>IP</TRACKING_METHOD>
<NETWORK_ID>0</NETWORK_ID>
<DNS>
<![CDATA[10-115-67-236.bogus.tld]]>
</DNS>
<DNS_DATA>
<HOSTNAME>
<![CDATA[10-115-67-236]]>
</HOSTNAME>
<DOMAIN>
<![CDATA[bogus.tld]]>
</DOMAIN>
<FQDN>
<![CDATA[10-115-67-236.bogus.tld]]>
</FQDN>
</DNS_DATA>
<OS>
<![CDATA[Red Hat Linux Advanced Server 2.1AS]]>
</OS>
<FIRST_FOUND_DATE>2026-01-07T12:29:09Z</FIRST_FOUND_DATE>
<LAST_VULN_SCAN_DATETIME>2026-01-08T10:14:13Z</LAST_VULN_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2026-01-08T10:14:13Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>19</LAST_VM_SCANNED_DURATION>
<LAST_VM_AUTH_SCANNED_DATE>2026-01-08T10:14:13Z</LAST_VM_AUTH_SCANNED_DATE>
<LAST_VM_AUTH_SCANNED_DURATION>19</LAST_VM_AUTH_SCANNED_DURATION>
</HOST>
<HOST>
<ID>17664739</ID>
<IP>xx.xx.xx.xx</IP>
<TRACKING_METHOD>Azure VM</TRACKING_METHOD>
<NETWORK_ID>0</NETWORK_ID>
<CLOUD_PROVIDER>
<![CDATA[Azure]]>
</CLOUD_PROVIDER>
<CLOUD_SERVICE>
<![CDATA[VM]]>
</CLOUD_SERVICE>
<CLOUD_RESOURCE_ID>
<![CDATA[8cc39bd5-42ef-4cfc-a671-446228bdcd56]]>
</CLOUD_RESOURCE_ID>
<!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
<EC2_INSTANCE_ID>
<![CDATA[8cc39bd5-42ef-4cfc-a671-446228bdcd56]]>
</EC2_INSTANCE_ID>
<FIRST_FOUND_DATE>2026-01-07T18:10:02Z</FIRST_FOUND_DATE>
</HOST>
<HOST>
<ID>19524551</ID>
<IP>xx.xxx.xx.xx</IP>
<TRACKING_METHOD>EC2</TRACKING_METHOD>
<NETWORK_ID>6703806</NETWORK_ID>
<DNS>
<![CDATA[ip-172-16-2-88.eu-west-1.compute.internal]]>
</DNS>
<DNS_DATA>
<HOSTNAME>
<![CDATA[ip-172-16-2-88]]>
</HOSTNAME>
<DOMAIN>
<![CDATA[eu-west-1.compute.internal]]>
</DOMAIN>
<FQDN>
<![CDATA[ip-172-16-2-88.eu-west-1.compute.internal]]>
</FQDN>
</DNS_DATA>
<CLOUD_PROVIDER>
<![CDATA[AWS]]>
</CLOUD_PROVIDER>
<CLOUD_SERVICE>
<![CDATA[EC2]]>
</CLOUD_SERVICE>
<CLOUD_RESOURCE_ID>
<![CDATA[i-0cd4ef5a6b7890123]]>
</CLOUD_RESOURCE_ID>
<!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
<EC2_INSTANCE_ID>
<![CDATA[i-0cd4ef5a6b7890123]]>
</EC2_INSTANCE_ID>
<QG_HOSTID>
<![CDATA[d4e5f6a7-b8c9-4d0e-af12-345678901bcd]]>
</QG_HOSTID>
<FIRST_FOUND_DATE>2026-05-18T05:42:19Z</FIRST_FOUND_DATE>
<METADATA>
<EC2>
<ATTRIBUTE>
<NAME>
<![CDATA[latest/meta-data/instance-id]]>
</NAME>
<LAST_STATUS>Success</LAST_STATUS>
<VALUE>
<![CDATA[i-0cd4ef5a6b7890123]]>
</VALUE>
<LAST_SUCCESS_DATE></LAST_SUCCESS_DATE>
<LAST_ERROR_DATE></LAST_ERROR_DATE>
<LAST_ERROR>
<![CDATA[]]>
</LAST_ERROR>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>
<![CDATA[latest/dynamic/instance-identity/document/instanceId]]>
</NAME>
<LAST_STATUS>Success</LAST_STATUS>
<VALUE>
<![CDATA[i-0cd4ef5a6b7890123]]>
</VALUE>
<LAST_SUCCESS_DATE></LAST_SUCCESS_DATE>
<LAST_ERROR_DATE></LAST_ERROR_DATE>
<LAST_ERROR>
<![CDATA[]]>
</LAST_ERROR>
</ATTRIBUTE>
</EC2>
</METADATA>
</HOST>
<HOST>
<ID>19942296</ID>
<IP>xxx.xxx.xx.xxx</IP>
<TRACKING_METHOD>OCI Compute Instance</TRACKING_METHOD>
<NETWORK_ID>0</NETWORK_ID>
<CLOUD_PROVIDER>
<![CDATA[OCI]]>
</CLOUD_PROVIDER>
<CLOUD_SERVICE>
<![CDATA[Compute Instance]]>
</CLOUD_SERVICE>
<CLOUD_RESOURCE_ID>
<![CDATA[ocid1.instance.oc1.ap-singapore-1.anzwsljrchxdvzyczua6ezrzmejjopkd5zur7ssodz6mw3xc6eiv56lafyla]]>
</CLOUD_RESOURCE_ID>
<!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
<EC2_INSTANCE_ID>
<![CDATA[ocid1.instance.oc1.ap-singapore-1.anzwsljrchxdvzyczua6ezrzmejjopkd5zur7ssodz6mw3xc6eiv56lafyla]]>
</EC2_INSTANCE_ID>
<FIRST_FOUND_DATE>2026-06-23T06:15:28Z</FIRST_FOUND_DATE>
<LAST_VULN_SCAN_DATETIME>2026-07-29T08:12:24Z</LAST_VULN_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2026-07-29T08:12:24Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>1456</LAST_VM_SCANNED_DURATION>
</HOST>
<HOST>
<ID>19951433</ID>
<IP>10.0.0.130</IP>
<TRACKING_METHOD>OCI Compute Instance</TRACKING_METHOD>
<NETWORK_ID>6804810</NETWORK_ID>
<CLOUD_PROVIDER>
<![CDATA[OCI]]>
</CLOUD_PROVIDER>
<CLOUD_SERVICE>
<![CDATA[Compute Instance]]>
</CLOUD_SERVICE>
<CLOUD_RESOURCE_ID>
<![CDATA[ocid1.instance.oc1.ap-osaka-1.anvwsljrchxdvzycgden4wbitnq6dtk6bzn7exkoyfd3kxouuajdjckil7ua]]>
</CLOUD_RESOURCE_ID>
<!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
<EC2_INSTANCE_ID>
<![CDATA[ocid1.instance.oc1.ap-osaka-1.anvwsljrchxdvzycgden4wbitnq6dtk6bzn7exkoyfd3kxouuajdjckil7ua]]>
</EC2_INSTANCE_ID>
<FIRST_FOUND_DATE>2026-06-23T11:47:18Z</FIRST_FOUND_DATE>
</HOST>
.......
<HOST>
<ID>19951434</ID>
<IP>xx.x.x.xxx</IP>
<TRACKING_METHOD>OCI Compute Instance</TRACKING_METHOD>
<NETWORK_ID>6804810</NETWORK_ID>
<CLOUD_PROVIDER>
<![CDATA[OCI]]>
</CLOUD_PROVIDER>
<CLOUD_SERVICE>
<![CDATA[Compute Instance]]>
</CLOUD_SERVICE>
<CLOUD_RESOURCE_ID>
<![CDATA[ocid1.instance.oc1.ap-osaka-1.anvwsljrchxdvzychw56fjwbrrbgzgwrh7yqf4kh3xhz2dnwy6zfvrz66r3q]]>
</CLOUD_RESOURCE_ID>
<!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
<EC2_INSTANCE_ID>
<![CDATA[ocid1.instance.oc1.ap-osaka-1.anvwsljrchxdvzychw56fjwbrrbgzgwrh7yqf4kh3xhz2dnwy6zfvrz66r3q]]>
</EC2_INSTANCE_ID>
<FIRST_FOUND_DATE>2026-06-23T11:47:18Z</FIRST_FOUND_DATE>
</HOST>
<!-- keep-alive for HOST_LIST_OUTPUT -->
<!-- keep-alive for HOST_LIST_OUTPUT -->
<!-- keep-alive for HOST_LIST_OUTPUT -->
<!-- keep-alive for HOST_LIST_OUTPUT -->
<!-- keep-alive for HOST_LIST_OUTPUT -->
</HOST_LIST>
<WARNING>
<CODE>1980</CODE>
<TEXT>1000 record limit exceeded. Use URL to get next batch of results.</TEXT>
<URL>
<![CDATA[<qualys_base_url>/api/6.0/fo/asset/host/?action=list&host_metadata=oci&details=All&id_min=19951633]]>
</URL>
</WARNING>
</RESPONSE>
</HOST_LIST_OUTPUT>
Sample - Display the list of all the hosts for OCI tracked assets using Host List detection APISample - Display the list of all the hosts for OCI tracked assets using Host List detection API
API Request
curl --location --request POST '<qualys_base_url>/api/6.0/fo/asset/host/vm/detection/?action=list&host_metadata=oci' \
--header 'X-Requested-With: curl' \
--header 'Authorization: Bearer <JWT Token>'
API Response
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HOST_LIST_VM_DETECTION_OUTPUT SYSTEM "<qualys_base_url>/api/6.0/fo/asset/host/vm/detection/dtd/output.dtd">
<HOST_LIST_VM_DETECTION_OUTPUT>
<RESPONSE>
<DATETIME>2026-07-30T11:49:07Z</DATETIME>
<HOST_LIST>
<HOST>
<ID>19942296</ID>
<IP>xxx.xxx.xx.xxx</IP>
<TRACKING_METHOD>OCI Compute Instance</TRACKING_METHOD>
<NETWORK_ID>0</NETWORK_ID>
<LAST_SCAN_DATETIME>2026-07-29T08:12:24Z</LAST_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2026-07-29T08:12:24Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>1456</LAST_VM_SCANNED_DURATION>
<DETECTION_LIST>
<DETECTION>
<UNIQUE_VULN_ID>213184238</UNIQUE_VULN_ID>
<QID>38229</QID>
<TYPE>Potential</TYPE>
<SEVERITY>3</SEVERITY>
<PORT>22</PORT>
<PROTOCOL>tcp</PROTOCOL>
<SSL>0</SSL>
<RESULTS>
<![CDATA[
3 consecutive connection attempts failed after a total number of 83 successful connections.
]]>
</RESULTS>
<STATUS>New</STATUS>
<FIRST_FOUND_DATETIME>2026-07-29T08:12:24Z</FIRST_FOUND_DATETIME>
<LAST_FOUND_DATETIME>2026-07-29T08:12:24Z</LAST_FOUND_DATETIME>
<TIMES_FOUND>1</TIMES_FOUND>
<LAST_TEST_DATETIME>2026-07-29T08:12:24Z</LAST_TEST_DATETIME>
<LAST_UPDATE_DATETIME>2026-07-29T08:12:24Z</LAST_UPDATE_DATETIME>
<IS_IGNORED>0</IS_IGNORED>
<IS_DISABLED>0</IS_DISABLED>
<LAST_PROCESSED_DATETIME>2026-07-29T08:12:24Z</LAST_PROCESSED_DATETIME>
</DETECTION>
</DETECTION_LIST>
</HOST>
</HOST_LIST>
</RESPONSE>
</HOST_LIST_VM_DETECTION_OUTPUT>
DTD Output for Host List APIDTD Output for Host List API
A DTD for Host list API has been added.
<platform API server>/api/6.0/fo/asset/host/dtd/list/output.dtd
DTD output for Host List API is as follows:
DTD Output
<!-- QUALYS HOST_OUTPUT DTD FOR LIST ACTION-->
<!-- $Revision$ -->
<!ELEMENT HOST_LIST_OUTPUT (REQUEST?,RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT RESPONSE (DATETIME, (HOST_LIST|ID_SET)?, WARNING?, GLOSSARY?)>
<!ELEMENT HOST_LIST (HOST+)>
<!ELEMENT HOST (ID, ASSET_ID?, IP?, IPV6?, ASSET_RISK_SCORE?, TRURISK_SCORE?, ASSET_CRITICALITY_SCORE?, ARS_FACTORS?,TRURISK_SCORE_FACTORS?, TRACKING_METHOD?, NETWORK_ID?, OS_HOSTNAME?,
DNS?, DNS_DATA?, CLOUD_PROVIDER?, CLOUD_SERVICE?, CLOUD_RESOURCE_ID?, EC2_INSTANCE_ID?, NETBIOS?, OS?, QG_HOSTID?, LAST_BOOT?, SERIAL_NUMBER?, HARDWARE_UUID?, FIRST_FOUND_DATE?, LAST_ACTIVITY?, AGENT_STATUS?, CLOUD_AGENT_RUNNING_ON?, AGENT_ACTIVATION_TITLE?, AGENT_ACTIVATION_KEY?,TAGS?, METADATA?,
CLOUD_PROVIDER_TAGS?, LAST_VULN_SCAN_DATETIME?, LAST_VM_SCANNED_DATE?, LAST_VM_SCANNED_DURATION?,
LAST_VM_AUTH_SCANNED_DATE?, LAST_VM_AUTH_SCANNED_DURATION?,
LAST_COMPLIANCE_SCAN_DATETIME?, PC_AUTH_SUCCESS_DATE?, LAST_SCAP_SCAN_DATETIME?, VM_AUTH_INSUFFICIENT_PRIVILEGE?, OWNER?, COMMENTS?, USER_DEF?, ASSET_GROUP_IDS?)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT ASSET_ID (#PCDATA)>
<!ELEMENT IP (#PCDATA)>
<!ELEMENT IPV6 (#PCDATA)>
<!ELEMENT ASSET_RISK_SCORE (#PCDATA)>
<!ELEMENT TRURISK_SCORE (#PCDATA)>
<!ELEMENT ASSET_CRITICALITY_SCORE (#PCDATA)>
<!ELEMENT ARS_FACTORS (ARS_FORMULA, VULN_COUNT*)>
<!ELEMENT ARS_FORMULA (#PCDATA)>
<!ELEMENT TRURISK_SCORE_FACTORS (TRURISK_SCORE_FORMULA, VULN_COUNT*)>
<!ELEMENT TRURISK_SCORE_FORMULA (#PCDATA)>
<!ELEMENT VULN_COUNT (#PCDATA)>
<!ATTLIST VULN_COUNT qds_severity CDATA #REQUIRED>
<!ELEMENT TRACKING_METHOD (#PCDATA)>
<!ELEMENT NETWORK_ID (#PCDATA)>
<!ELEMENT OS_HOSTNAME (#PCDATA)>
<!ELEMENT DNS (#PCDATA)>
<!ELEMENT DNS_DATA (HOSTNAME?, DOMAIN?, FQDN?)>
<!ELEMENT HOSTNAME (#PCDATA)>
<!ELEMENT DOMAIN (#PCDATA)>
<!ELEMENT FQDN (#PCDATA)>
<!ELEMENT EC2_INSTANCE_ID (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER (#PCDATA)>
<!ELEMENT CLOUD_SERVICE (#PCDATA)>
<!ELEMENT CLOUD_RESOURCE_ID (#PCDATA)>
<!ELEMENT NETBIOS (#PCDATA)>
<!ELEMENT OS (#PCDATA)>
<!ELEMENT QG_HOSTID (#PCDATA)>
<!ELEMENT LAST_BOOT (#PCDATA)>
<!ELEMENT SERIAL_NUMBER (#PCDATA)>
<!ELEMENT HARDWARE_UUID (#PCDATA)>
<!ELEMENT FIRST_FOUND_DATE (#PCDATA)>
<!ELEMENT LAST_ACTIVITY (#PCDATA)>
<!ELEMENT AGENT_STATUS (#PCDATA)>
<!ELEMENT CLOUD_AGENT_RUNNING_ON (#PCDATA)>
<!ELEMENT AGENT_ACTIVATION_TITLE (#PCDATA)>
<!ELEMENT AGENT_ACTIVATION_KEY (#PCDATA)>
<!ELEMENT TAGS (TAG*)>
<!ELEMENT TAG (TAG_ID?, NAME?)>
<!ELEMENT TAG_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT LAST_VULN_SCAN_DATETIME (#PCDATA)>
<!ELEMENT LAST_VM_SCANNED_DATE (#PCDATA)>
<!ELEMENT LAST_VM_SCANNED_DURATION (#PCDATA)>
<!ELEMENT LAST_VM_AUTH_SCANNED_DATE (#PCDATA)>
<!ELEMENT LAST_VM_AUTH_SCANNED_DURATION (#PCDATA)>
<!ELEMENT LAST_COMPLIANCE_SCAN_DATETIME (#PCDATA)>
<!ELEMENT PC_AUTH_SUCCESS_DATE (#PCDATA)>
<!ELEMENT LAST_SCAP_SCAN_DATETIME (#PCDATA)>
<!ELEMENT VM_AUTH_INSUFFICIENT_PRIVILEGE (#PCDATA)>
<!ELEMENT OWNER (#PCDATA)>
<!ELEMENT COMMENTS (#PCDATA)>
<!ELEMENT USER_DEF (LABEL_1?, LABEL_2?, LABEL_3?, VALUE_1?, VALUE_2?, VALUE_3?)>
<!ELEMENT LABEL_1 (#PCDATA)>
<!ELEMENT LABEL_2 (#PCDATA)>
<!ELEMENT LABEL_3 (#PCDATA)>
<!ELEMENT VALUE_1 (#PCDATA)>
<!ATTLIST VALUE_1
ud_attr CDATA #REQUIRED>
<!ELEMENT VALUE_2 (#PCDATA)>
<!ATTLIST VALUE_2
ud_attr CDATA #REQUIRED>
<!ELEMENT VALUE_3 (#PCDATA)>
<!ATTLIST VALUE_3
ud_attr CDATA #REQUIRED>
<!ELEMENT METADATA (EC2|GOOGLE|AZURE|ALICLOUD|OCI)+>
<!ELEMENT EC2 (ATTRIBUTE*)>
<!ELEMENT GOOGLE (ATTRIBUTE*)>
<!ELEMENT AZURE (ATTRIBUTE*)>
<!ELEMENT ALICLOUD (ATTRIBUTE*)>
<!ELEMENT OCI (ATTRIBUTE*)>
<!ELEMENT ATTRIBUTE (NAME,LAST_STATUS,VALUE,LAST_SUCCESS_DATE?,LAST_ERROR_DATE?,LAST_ERROR?)>
<!ELEMENT LAST_STATUS (#PCDATA)>
<!ELEMENT LAST_SUCCESS_DATE (#PCDATA)>
<!ELEMENT LAST_ERROR_DATE (#PCDATA)>
<!ELEMENT LAST_ERROR (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER_TAGS (CLOUD_TAG+)>
<!ELEMENT CLOUD_TAG (NAME, VALUE, LAST_SUCCESS_DATE)>
<!ELEMENT ASSET_GROUP_IDS (#PCDATA)>
<!ELEMENT ID_SET ((ID|ID_RANGE)+)>
<!ELEMENT ID_RANGE (#PCDATA)>
<!ELEMENT WARNING (CODE?, TEXT, URL?)>
<!ELEMENT CODE (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>
<!ELEMENT URL (#PCDATA)>
<!ELEMENT GLOSSARY (USER_DEF?, USER_LIST?, ASSET_GROUP_LIST?)>
<!ELEMENT USER_LIST (USER+)>
<!ELEMENT USER (USER_LOGIN, FIRST_NAME, LAST_NAME)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT ASSET_GROUP_LIST (ASSET_GROUP+)>
<!ELEMENT ASSET_GROUP (ID, TITLE)>
<!ELEMENT TITLE (#PCDATA)>
<!-- EOF -->
DTD Output for Host List Detection APIDTD Output for Host List Detection API
A DTD for Host list Detection API has been added.
<platform API server>/api/6.0/fo/asset/host/vm/detection/dtd/output.dtd
DTD output for Host List Detection API is as follows:
DTD Output
<!-- QUALYS HOST_LIST_VM_DETECTION_OUTPUT DTD -->
<!ELEMENT HOST_LIST_VM_DETECTION_OUTPUT (REQUEST?,RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT RESPONSE (DATETIME, HOST_LIST?, WARNING?)>
<!ELEMENT HOST_LIST (HOST+)>
<!ELEMENT HOST (ID, ASSET_ID?, IP?, IPV6?, TRACKING_METHOD?, ASSET_GROUP_LIST?, NETWORK_ID?, NETWORK_NAME?, OS_HOSTNAME?,
OS?, OS_CPE?, DNS?, DNS_DATA?, CLOUD_PROVIDER?, CLOUD_SERVICE?, CLOUD_RESOURCE_ID?, EC2_INSTANCE_ID?, NETBIOS?, QG_HOSTID?,
LAST_SCAN_DATETIME?, LAST_VM_SCANNED_DATE?,
LAST_VM_SCANNED_DURATION?, LAST_VM_AUTH_SCANNED_DATE?,
LAST_VM_AUTH_SCANNED_DURATION?, LAST_PC_SCANNED_DATE?, TAGS?, METADATA?, CLOUD_PROVIDER_TAGS?, DETECTION_LIST)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT ASSET_ID (#PCDATA)>
<!ELEMENT IP (#PCDATA)>
<!ELEMENT IPV6 (#PCDATA)>
<!ELEMENT TRACKING_METHOD (#PCDATA)>
<!ELEMENT ASSET_GROUP_LIST (EMPTY|ASSET_GROUP)*>
<!ELEMENT ASSET_GROUP (ID, TITLE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT NETWORK_ID (#PCDATA)>
<!ELEMENT NETWORK_NAME (#PCDATA)>
<!ELEMENT OS_HOSTNAME (#PCDATA)>
<!ELEMENT OS (#PCDATA)>
<!ELEMENT OS_CPE (#PCDATA)>
<!ELEMENT DNS (#PCDATA)>
<!ELEMENT DNS_DATA (HOSTNAME?, DOMAIN?, FQDN?)>
<!ELEMENT HOSTNAME (#PCDATA)>
<!ELEMENT DOMAIN (#PCDATA)>
<!ELEMENT FQDN (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER (#PCDATA)>
<!ELEMENT CLOUD_SERVICE (#PCDATA)>
<!ELEMENT CLOUD_RESOURCE_ID (#PCDATA)>
<!ELEMENT EC2_INSTANCE_ID (#PCDATA)>
<!ELEMENT NETBIOS (#PCDATA)>
<!ELEMENT QG_HOSTID (#PCDATA)>
<!ELEMENT LAST_SCAN_DATETIME (#PCDATA)>
<!ELEMENT LAST_VM_SCANNED_DATE (#PCDATA)>
<!ELEMENT LAST_VM_SCANNED_DURATION (#PCDATA)>
<!ELEMENT LAST_VM_AUTH_SCANNED_DATE (#PCDATA)>
<!ELEMENT LAST_VM_AUTH_SCANNED_DURATION (#PCDATA)>
<!ELEMENT LAST_PC_SCANNED_DATE (#PCDATA)>
<!ELEMENT TAGS (TAG+)>
<!ELEMENT TAG (TAG_ID?, NAME, COLOR?, BACKGROUND_COLOR?)>
<!ELEMENT TAG_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT COLOR (#PCDATA)>
<!ELEMENT BACKGROUND_COLOR (#PCDATA)>
<!ELEMENT METADATA (EC2|GOOGLE|AZURE|ALICLOUD|OCI)+>
<!ELEMENT EC2 (ATTRIBUTE*)>
<!ELEMENT GOOGLE (ATTRIBUTE*)>
<!ELEMENT AZURE (ATTRIBUTE*)>
<!ELEMENT ALICLOUD (ATTRIBUTE*)>
<!ELEMENT OCI (ATTRIBUTE*)>
<!ELEMENT ATTRIBUTE (NAME,LAST_STATUS,VALUE,LAST_SUCCESS_DATE?,LAST_ERROR_DATE?,LAST_ERROR?)>
<!ELEMENT LAST_STATUS (#PCDATA)>
<!ELEMENT LAST_SUCCESS_DATE (#PCDATA)>
<!ELEMENT LAST_ERROR_DATE (#PCDATA)>
<!ELEMENT LAST_ERROR (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER_TAGS (CLOUD_TAG+)>
<!ELEMENT CLOUD_TAG (NAME, VALUE, LAST_SUCCESS_DATE)>
<!ELEMENT DETECTION_LIST (DETECTION+)>
<!ELEMENT DETECTION (UNIQUE_VULN_ID, QID, TYPE, SEVERITY?, CATEGORY?, PORT?, PROTOCOL?, FQDN?, SSL?, INSTANCE?, RESULT_INSTANCE?,
CVE?, RESULTS?, STATUS?,
FIRST_FOUND_DATETIME?, LAST_FOUND_DATETIME?, SOURCE?, VULNERABILITY_DETECTION_SOURCES?, LATEST_VULNERABILITY_DETECTION_SOURCE?,
MITRE_TACTIC_NAME?, MITRE_TECHNIQUE_NAME?, MITRE_TACTIC_ID?, MITRE_TECHNIQUE_ID?, TRURISK_ELIMINATION_STATUS?, QDS?, QDS_FACTORS?, TIMES_FOUND?,
LAST_TEST_DATETIME?,
LAST_UPDATE_DATETIME?,
LAST_FIXED_DATETIME?,
FIRST_REOPENED_DATETIME?, LAST_REOPENED_DATETIME?, TIMES_REOPENED?,
SERVICE?, IS_IGNORED?, IS_DISABLED?, AFFECT_RUNNING_KERNEL?, AFFECT_RUNNING_SERVICE?, AFFECT_EXPLOITABLE_CONFIG?, LAST_PROCESSED_DATETIME?, ASSET_CVE?)>
<!ELEMENT UNIQUE_VULN_ID (#PCDATA)>
<!ELEMENT QID (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT PROTOCOL (#PCDATA)>
<!ELEMENT SSL (#PCDATA)>
<!ELEMENT INSTANCE (#PCDATA)>
<!ELEMENT RESULT_INSTANCE (#PCDATA)>
<!ELEMENT CVE (#PCDATA)>
<!ELEMENT RESULTS (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>
<!ELEMENT SEVERITY (#PCDATA)>
<!ELEMENT CATEGORY (#PCDATA)>
<!ELEMENT QDS (#PCDATA)>
<!ATTLIST QDS severity CDATA #REQUIRED>
<!ELEMENT QDS_FACTORS (QDS_FACTOR)*>
<!ELEMENT QDS_FACTOR (#PCDATA)>
<!ATTLIST QDS_FACTOR name CDATA #REQUIRED>
<!ELEMENT FIRST_FOUND_DATETIME (#PCDATA)>
<!ELEMENT LAST_FOUND_DATETIME (#PCDATA)>
<!ELEMENT SOURCE (#PCDATA)>
<!ELEMENT VULNERABILITY_DETECTION_SOURCES (#PCDATA)>
<!ELEMENT LATEST_VULNERABILITY_DETECTION_SOURCE (#PCDATA)>
<!ELEMENT MITRE_TACTIC_NAME (#PCDATA)>
<!ELEMENT MITRE_TECHNIQUE_NAME (#PCDATA)>
<!ELEMENT MITRE_TACTIC_ID (#PCDATA)>
<!ELEMENT MITRE_TECHNIQUE_ID (#PCDATA)>
<!ELEMENT TRURISK_ELIMINATION_STATUS (#PCDATA)>
<!ELEMENT TIMES_FOUND (#PCDATA)>
<!ELEMENT LAST_TEST_DATETIME (#PCDATA)>
<!ELEMENT LAST_UPDATE_DATETIME (#PCDATA)>
<!ELEMENT LAST_FIXED_DATETIME (#PCDATA)>
<!ELEMENT FIRST_REOPENED_DATETIME (#PCDATA)>
<!ELEMENT LAST_REOPENED_DATETIME (#PCDATA)>
<!ELEMENT TIMES_REOPENED (#PCDATA)>
<!ELEMENT SERVICE (#PCDATA)>
<!ELEMENT IS_IGNORED (#PCDATA)>
<!ELEMENT IS_DISABLED (#PCDATA)>
<!ELEMENT AFFECT_RUNNING_KERNEL (#PCDATA)>
<!ELEMENT AFFECT_RUNNING_SERVICE (#PCDATA)>
<!ELEMENT AFFECT_EXPLOITABLE_CONFIG (#PCDATA)>
<!ELEMENT LAST_PROCESSED_DATETIME (#PCDATA)>
<!ELEMENT ASSET_CVE (#PCDATA)>
<!ELEMENT WARNING (CODE?, TEXT, URL?)>
<!ELEMENT CODE (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>
<!ELEMENT URL (#PCDATA)>
<!-- EOF -->
Extended Password Length Support for Unix/SSH Authentication Records
| New or Updated API | Updated |
| API Endpoint |
/api/2.0/fo/auth/unix /api/3.0/fo/auth/unix /api/4.0/fo/auth/unix |
| Method | POST |
| DTD or XSD changes | No |
You can now create and update Unix/SSH authentication records using passwords up to 200 characters long using the Unix authentication APIs. Previously, the maximum supported password length was 100 characters, which could prevent you from using authentication credentials that met your organization's password requirements.
Now, The maximum supported password length for Unix/SSH authentication records has increased from 100 to 200 characters. This enhancement increases the supported password length for only Unix/SSH authentication records while maintaining existing behavior for other authentication types. This helps to align authentication record configuration with enterprise password policies.
Issues Addressed
The following reported and notable customer issues are fixed in this release:
| Component/Category | Description |
| VM - Certificates | When users searched for API support for bulk certificate deletion, the available certificate management capabilities were unclear. We have updated the API Guide to clarify that bulk certificate deletion through the API is not currently supported. |
| VM - Host List Detection API | When users generated host-based reports with large vulnerability datasets, report generation could take longer than expected, impacting performance. This issue is now resolved, and host-based reports that include vulnerability information, vulnerability reopen data, vulnerability transitions, and Information Gathered (IG) details are generated more efficiently. |