CVE-2026-41582
countly-server is the server-side part of Countly, a product analytics solution. Prior to 24.05.50 and 25.03.44, public image and screenshot routes implemented in frontend/express/app.js, plugins/star-rating/frontend/app.js, and plugins/dashboards/frontend/app.js concatenate attacker-controlled wildcard paths without containment validation. On deployments using the local filesystem backend, an unauthenticated request can traverse outside the intended asset directories and reach getStats or getStream in api/utils/countlyFs.js, allowing arbitrary readable server files to be disclosed.
Read full descriptionShow less
The affected routes include /appimages/*, /memberimages/*, */screenshots/*, /star-rating/images/*, and /dashboards/images/screenshots/*. This issue is fixed in versions 24.05.50 and 25.03.44.
CVSS
- Base score
- 7.5
- Version
- 3.1
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days
- 0.43 %
- Percentile among all scored CVEs
- 36
- Score date
- 10/20/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
ATT&CK techniques
How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.
- Exploitation
T1190Exploit Public-Facing Applicationinitial access95 % - Primary impact
T1005Data from Local Systemcollection90 %
Vector AV:N/PR:N/UI:N y rutas de imagen sin validación permiten path traversal no autenticado para leer archivos arbitrarios del servidor, según el texto.
Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.
ATT&CK mitigations that cover these techniques
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
CWEs
- CWE-22
References
Show 6 references
- https://github.com/Countly/countly-server/commit/405cb229ed37c744f6d61c42bf86fee5a7ee3530
- https://github.com/Countly/countly-server/commit/8004d29d3c789b70a79bf6e0380f0d546dbf42a9
- https://github.com/Countly/countly-server/releases/tag/24.05.50
- https://github.com/Countly/countly-server/releases/tag/25.03.44
- https://github.com/Countly/countly-server/security/advisories/GHSA-fqgp-6rm9-8696
- https://github.com/Countly/countly-server/security/advisories/GHSA-fqgp-6rm9-8696
Raw JSON (NVD)
Show
{
"id": "CVE-2026-41582",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-41582",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-19T12:35:23.231913Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 7.5,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 3.9
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "Countly",
"product": "countly-server",
"versions": [
{
"status": "affected",
"version": "< 24.05.50"
},
{
"status": "affected",
"version": ">= 25.03, < 25.03.44"
}
]
}
]
}
],
"published": "2026-10-16T16:17:23.623",
"references": [
{
"url": "https://github.com/Countly/countly-server/commit/405cb229ed37c744f6d61c42bf86fee5a7ee3530",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Countly/countly-server/commit/8004d29d3c789b70a79bf6e0380f0d546dbf42a9",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Countly/countly-server/releases/tag/24.05.50",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Countly/countly-server/releases/tag/25.03.44",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Countly/countly-server/security/advisories/GHSA-fqgp-6rm9-8696",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Countly/countly-server/security/advisories/GHSA-fqgp-6rm9-8696",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "countly-server is the server-side part of Countly, a product analytics solution. Prior to 24.05.50 and 25.03.44, public image and screenshot routes implemented in frontend/express/app.js, plugins/star-rating/frontend/app.js, and plugins/dashboards/frontend/app.js concatenate attacker-controlled wildcard paths without containment validation. On deployments using the local filesystem backend, an unauthenticated request can traverse outside the intended asset directories and reach getStats or getStream in api/utils/countlyFs.js, allowing arbitrary readable server files to be disclosed. The affected routes include /appimages/*, /memberimages/*, */screenshots/*, /star-rating/images/*, and /dashboards/images/screenshots/*. This issue is fixed in versions 24.05.50 and 25.03.44."
}
],
"lastModified": "2026-10-19T13:16:58.180",
"sourceIdentifier": "security-advisories@github.com"
}