{"id":"CVE-2025-23200","aliases":["EUVD-2025-0095","GHSA-c66p-64fj-jmc2"],"status":"published","title":"Stored XSS-LibreNMS-Misc Section in librenms","description":"librenms is a community-based GPL-licensed network monitoring system. Affected versions are subject to a stored XSS on the parameter: `ajax_form.php` -\u003e param: state. Librenms versions up to 24.10.1 allow remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure. This issue has been addressed in release version 24.11.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.","severity":{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.49322,"percentile":0.98907,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2025-01-16T17:32:55Z","modified":"2026-10-28T02:30:39Z","fixes":[{"ecosystem":"Packagist","package":"librenms/librenms","fixed_in":["24.10.1","24.11.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"librenms/librenms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"23.9.0"},{"fixed":"24.10.1"}]}]},{"source":"osv","ecosystem":"Packagist","package":"librenms/librenms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"23.9.0"},{"fixed":"24.11.0"}]}],"versions":["23.10.0","23.11.0","23.9.0","23.9.1","24.1.0","24.10.0","24.10.1","24.2.0","24.3.0","24.4.0","24.4.1","24.5.0","24.6.0","24.7.0","24.8.0","24.8.1","24.9.0","24.9.1"]}],"products":[{"vendor":"librenms","product":"librenms"}],"references":[{"url":"https://github.com/librenms/librenms/security/advisories/GHSA-c66p-64fj-jmc2","tags":["x_refsource_CONFIRM","Exploit","Vendor Advisory","advisory","web"]},{"url":"https://github.com/librenms/librenms/pull/16722","tags":["web"]},{"url":"https://github.com/librenms/librenms/commit/26258a2518dbfa55b213ec4b90ec16ed97efb597","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-23200","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-c66p-64fj-jmc2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/23xxx/CVE-2025-23200.json","tags":["advisory"]},{"url":"https://github.com/librenms/librenms","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-23200","title":"Stored XSS-LibreNMS-Misc Section in librenms","description":"librenms is a community-based GPL-licensed network monitoring system. Affected versions are subject to a stored XSS on the parameter: `ajax_form.php` -\u003e param: state. Librenms versions up to 24.10.1 allow remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure. This issue has been addressed in release version 24.11.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2025-01-16T22:20:51.907Z","modified":"2025-02-12T20:31:24.753Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:32:33.082076Z"}],"euvd":[{"id":"EUVD-2025-0095","description":"librenms is a community-based GPL-licensed network monitoring system. Affected versions are subject to a stored XSS on the parameter: `ajax_form.php` -\u003e param: state. Librenms versions up to 24.10.1 allow remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure. This issue has been addressed in release version 24.11.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2025-01-16T22:20:51Z","modified":"2025-02-12T20:31:24Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T00:03:56.514594Z"}],"ghsa":[{"id":"GHSA-c66p-64fj-jmc2","title":"LibreNMS Misc Section Stored Cross-site Scripting vulnerability","description":"# StoredXSS-LibreNMS-MiscSection\n\n\n**Description:**\n\n\nStored XSS on the parameter: `ajax_form.php` -\u003e param: state\n\nRequest:\n```http\nPOST /ajax_form.php HTTP/1.1\nHost: \u003cyour_host\u003e\nX-Requested-With: XMLHttpRequest\nX-CSRF-TOKEN: \u003cyour_XSRF_token\u003e\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\nCookie: \u003cyour_cookie\u003e\n\ntype=override-config\u0026device_id=1\u0026attrib=override_icmp_disable\u0026state=\"\u003e\u003cimg%20src%20onerror=\"alert(1)\"\u003e \n```\n\n\nof Librenms version 24.10.1 ([https://github.com/librenms/librenms](https://github.com/librenms/librenms)) allows remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure.\n\n\nThe vulnerability in the line:\n```php\n$attrib_val = get_dev_attrib($device, $name);\n```\nwithin the `dynamic_override_config` function arises because the value of `$attrib_val is` retrieved from untrusted data without any sanitization or encoding (at [Line 778](https://github.com/librenms/librenms/blob/master/includes/html/functions.inc.php#L778)). \n\nWhen `dynamic_override_config` is called, the unescaped `$attrib_val` is injected directly into the HTML (at [misc.inc.php](https://github.com/librenms/librenms/blob/master/includes/html/pages/device/edit/misc.inc.php)).\n\n\n**Proof of Concept:**\n1. Add a new device through the LibreNMS interface.\n2. Edit the newly created device and select the Misc section.\n3. In any of the following fields: \"Override default ssh port\", \"Override default telnet port\", \"Override default http port\" or \"Unix agent port\", enter the payload: `\"\u003e\u003cimg src onerror=\"alert(document.cookie)\"\u003e`.\n4. Save the changes.\n5. Observe that when the page loads, the XSS payload executes, triggering a popup that displays the current cookies.\n\n\n\n![image](https://github.com/user-attachments/assets/097d17cb-7a6c-4924-add8-f867df643025)\n![image](https://github.com/user-attachments/assets/8213d55a-d87a-4a6e-94bf-092877398da5)\n\n\n**Impact:**\n\nExecution of Malicious Code","status":"published","published":"2025-01-16T17:32:55Z","modified":"2025-03-25T15:48:17Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:38:36.51789Z"}],"nvd":[{"id":"CVE-2025-23200","description":"librenms is a community-based GPL-licensed network monitoring system. Affected versions are subject to a stored XSS on the parameter: `ajax_form.php` -\u003e param: state. Librenms versions up to 24.10.1 allow remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure. This issue has been addressed in release version 24.11.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2025-01-16T23:15:08.72Z","modified":"2026-06-17T08:52:34.99Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:10:48.713733Z"}],"osv":[{"id":"CVE-2025-23200","title":"Stored XSS-LibreNMS-Misc Section in librenms","description":"librenms is a community-based GPL-licensed network monitoring system. Affected versions are subject to a stored XSS on the parameter: `ajax_form.php` -\u003e param: state. Librenms versions up to 24.10.1 allow remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure. This issue has been addressed in release version 24.11.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2025-01-16T22:20:51.907Z","modified":"2026-10-28T02:30:39.460183125Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:47.009967Z"},{"id":"GHSA-c66p-64fj-jmc2","title":"LibreNMS Misc Section Stored Cross-site Scripting vulnerability","description":"# StoredXSS-LibreNMS-MiscSection\n\n\n**Description:**\n\n\nStored XSS on the parameter: `ajax_form.php` -\u003e param: state\n\nRequest:\n```http\nPOST /ajax_form.php HTTP/1.1\nHost: \u003cyour_host\u003e\nX-Requested-With: XMLHttpRequest\nX-CSRF-TOKEN: \u003cyour_XSRF_token\u003e\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\nCookie: \u003cyour_cookie\u003e\n\ntype=override-config\u0026device_id=1\u0026attrib=override_icmp_disable\u0026state=\"\u003e\u003cimg%20src%20onerror=\"alert(1)\"\u003e \n```\n\n\nof Librenms version 24.10.1 ([https://github.com/librenms/librenms](https://github.com/librenms/librenms)) allows remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure.\n\n\nThe vulnerability in the line:\n```php\n$attrib_val = get_dev_attrib($device, $name);\n```\nwithin the `dynamic_override_config` function arises because the value of `$attrib_val is` retrieved from untrusted data without any sanitization or encoding (at [Line 778](https://github.com/librenms/librenms/blob/master/includes/html/functions.inc.php#L778)). \n\nWhen `dynamic_override_config` is called, the unescaped `$attrib_val` is injected directly into the HTML (at [misc.inc.php](https://github.com/librenms/librenms/blob/master/includes/html/pages/device/edit/misc.inc.php)).\n\n\n**Proof of Concept:**\n1. Add a new device through the LibreNMS interface.\n2. Edit the newly created device and select the Misc section.\n3. In any of the following fields: \"Override default ssh port\", \"Override default telnet port\", \"Override default http port\" or \"Unix agent port\", enter the payload: `\"\u003e\u003cimg src onerror=\"alert(document.cookie)\"\u003e`.\n4. Save the changes.\n5. Observe that when the page loads, the XSS payload executes, triggering a popup that displays the current cookies.\n\n\n\n![image](https://github.com/user-attachments/assets/097d17cb-7a6c-4924-add8-f867df643025)\n![image](https://github.com/user-attachments/assets/8213d55a-d87a-4a6e-94bf-092877398da5)\n\n\n**Impact:**\n\nExecution of Malicious Code","status":"published","published":"2025-01-16T17:32:55Z","modified":"2025-03-25T15:53:10.309075Z","cvss":[{"version":"3.1","score":4.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:44.571161Z"}]}}
