GHSA-27VF-3G4F-6JP7
Vulnerability from github – Published: 2025-01-16 17:32 – Updated: 2025-03-25 15:47StoredXSS-LibreNMS-Ports
Description:
Stored XSS on the parameter:
/ajax_form.php -> param: descr
Request:
POST /ajax_form.php HTTP/1.1
Host: <your_host>
X-Requested-With: XMLHttpRequest
X-CSRF-TOKEN: <your_XSRF_token>
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: <your_cookie>
type=update-ifalias&descr=%22%3E%3Cimg+src+onerror%3D%22alert(1)%22%3E&ifName=lo&port_id=1&device_id=1
of Librenms version 24.10.1 (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.
Proof of Concept:
1. Add a new device through the LibreNMS interface.
2. Edit the newly created device and select the "ports" section.
3. In the "Description" field, enter the following payload: "><img src onerror="alert(1)">.
4. Save the changes.
5. The XSS vulnerability is triggered when accessing the "ports" tab, and the payload is executed again when hovering over the modified value in the "Port" field.
Payload:
Executes:
The script execution vulnerability in the description field, as shown in the image, occurs at Line 63 of functions.inc.php
$overlib_content = '<div class=overlib><span class=overlib-text>' . $text . '</span><br />';
Impact:
Execution of Malicious Code
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c 24.10.1"
},
"package": {
"ecosystem": "Packagist",
"name": "librenms/librenms"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "24.11.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2025-23199"
],
"database_specific": {
"cwe_ids": [
"CWE-79"
],
"github_reviewed": true,
"github_reviewed_at": "2025-01-16T17:32:30Z",
"nvd_published_at": "2025-01-16T23:15:08Z",
"severity": "MODERATE"
},
"details": "# StoredXSS-LibreNMS-Ports\n\n\n**Description:**\n\n\nStored XSS on the parameter:\n`/ajax_form.php` -\u003e param: descr\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=update-ifalias\u0026descr=%22%3E%3Cimg+src+onerror%3D%22alert(1)%22%3E\u0026ifName=lo\u0026port_id=1\u0026device_id=1\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\n\n**Proof of Concept:**\n1. Add a new device through the LibreNMS interface.\n2. Edit the newly created device and select the \"ports\" section.\n3. In the \"Description\" field, enter the following payload: `\"\u003e\u003cimg src onerror=\"alert(1)\"\u003e`.\n4. Save the changes.\n5. The XSS vulnerability is triggered when accessing the \"ports\" tab, and the payload is executed again when hovering over the modified value in the \"Port\" field.\n\nPayload:\n\n\nExecutes:\n\nThe script execution vulnerability in the description field, as shown in the image, occurs at [Line 63 of functions.inc.php](https://github.com/librenms/librenms/blob/master/includes/html/functions.inc.php#L63)\n```php\n$overlib_content = \u0027\u003cdiv class=overlib\u003e\u003cspan class=overlib-text\u003e\u0027 . $text . \u0027\u003c/span\u003e\u003cbr /\u003e\u0027;\n```\n\n\n\n\n\n\n**Impact:**\n\nExecution of Malicious Code",
"id": "GHSA-27vf-3g4f-6jp7",
"modified": "2025-03-25T15:47:35Z",
"published": "2025-01-16T17:32:30Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/librenms/librenms/security/advisories/GHSA-27vf-3g4f-6jp7"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-23199"
},
{
"type": "WEB",
"url": "https://github.com/librenms/librenms/pull/16721"
},
{
"type": "WEB",
"url": "https://github.com/librenms/librenms/commit/9d07d166b87634091dcf21c62b28f9b42a3118c4"
},
{
"type": "PACKAGE",
"url": "https://github.com/librenms/librenms"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N",
"type": "CVSS_V3"
}
],
"summary": "LibreNMS Ports Stored Cross-site Scripting vulnerability"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.