{"schemaVersion":3,"id":"CVE-2025-54141","aliases":["UBUNTU-CVE-2025-54141","openSUSE-SU-2025:15374-1"],"status":"published","duplicateOf":null,"title":null,"description":"ViewVC is a browser interface for CVS and Subversion version control repositories. In versions 1.1.0 through 1.1.31 and 1.2.0 through 1.2.3, the standalone.py script provided in the ViewVC distribution can expose the contents of the host server's filesystem though a directory traversal-style attack. This is fixed in versions 1.1.31 and  1.2.4.","dates":{"published":"2025-07-22T21:35:47.844Z","modified":"2025-07-23T18:31:31.496Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":7.5,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":10,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00849,"percentile":0.57658,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":-0.007000000000000062,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00856},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00822,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00849,"percentile":0.57658}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00856,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00849,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00849,"percentile":0.57658}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"GITHUB_VIEWVC_VIEWVC","name":"Viewvc","source":"github","url":"https://github.com/viewvc/viewvc/issues/211","maturity":"poc","reliabilityScore":0.3,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"},{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"}],"affected":[{"vendor":"ubuntu","product":"viewvc","name":"viewvc","label":"viewvc","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/viewvc","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"opensuse","product":"viewvc&distro=openSUSE Tumbleweed","name":"viewvc","label":"viewvc&distro=openSUSE Tumbleweed","ecosystem":"openSUSE","cpePart":null,"purl":"pkg:rpm/opensuse/viewvc&distro=openSUSE Tumbleweed","purlType":"rpm","versions":[{"text":"< 1.3.0~dev20250722-1.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.3.0~dev20250722-1.1","eol":null,"hubHref":null},{"vendor":"viewvc","product":"viewvc","name":"viewvc","label":"viewvc","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.1.0, < 1.1.31","noFixRecorded":false,"fixedIn":null},{"text":"≥ 1.2.0, < 1.2.4","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.1.0, < 1.1.31 | ≥ 1.2.0, < 1.2.4","eol":null,"hubHref":"/vendor/viewvc/viewvc"}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/viewvc/viewvc/security/advisories/GHSA-rv3m-76rj-q397","label":"github.com/viewvc/viewvc/security/advisories/GHSA-rv3m-76rj-q397","hostname":"github.com","tags":["X Refsource CONFIRM","REPORT","Vendor Advisory"]},{"url":"https://github.com/viewvc/viewvc/issues/211","label":"github.com/viewvc/viewvc/issues/211","hostname":"github.com","tags":["X Refsource MISC","REPORT","Exploit","Issue Tracking"]},{"url":"https://github.com/viewvc/viewvc/commit/1dd84542c39b39e4a3f434db84a8ba3441d6a1e7","label":"github.com/viewvc/viewvc/commit/1dd84542c39b39e4a3f434db84a8ba3441d6a1e7","hostname":"github.com","tags":["X Refsource MISC","REPORT","Patch"]},{"url":"https://github.com/viewvc/viewvc/commit/5d7c76be07b77dce4ff631e9b866056344f11e84","label":"github.com/viewvc/viewvc/commit/5d7c76be07b77dce4ff631e9b866056344f11e84","hostname":"github.com","tags":["X Refsource MISC","REPORT","Patch"]},{"url":"https://ubuntu.com/security/CVE-2025-54141","label":"ubuntu.com/security/CVE-2025-54141","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-54141","label":"www.cve.org/CVERecord?id=CVE-2025-54141","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://www.suse.com/security/cve/CVE-2025-54141","label":"www.suse.com/security/cve/CVE-2025-54141","hostname":"www.suse.com","tags":["WEB"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2025-07-22T21:35:47.844Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-07-23T18:31:31.496Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":40,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T13:50:18.167Z","stale":false,"partial":false}}