CVE-2022-36007: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in jlangch venice
Venice is a Clojure inspired sandboxed Lisp dialect with excellent Java interoperability. A partial path traversal issue exists within the functions `load-file` and `load-resource`. These functions can be limited to load files from a list of load paths. Assuming Venice has been configured with the load paths: `[ "/Users/foo/resources" ]` When passing **relative** paths to these two vulnerable functions everything is fine: `(load-resource "test.png")` => loads the file "/Users/foo/resources/test.png" `(load-resource "../resources-alt/test.png")` => rejected, outside the load path When passing **absolute** paths to these two vulnerable functions Venice may return files outside the configured load paths: `(load-resource "/Users/foo/resources/test.png")` => loads the file "/Users/foo/resources/test.png" `(load-resource "/Users/foo/resources-alt/test.png")` => loads the file "/Users/foo/resources-alt/test.png" !!! The latter call suffers from the _Partial Path Traversal_ vulnerability. This issue’s scope is limited to absolute paths whose name prefix matches a load path. E.g. for a load-path `"/Users/foo/resources"`, the actor can cause loading a resource also from `"/Users/foo/resources-alt"`, but not from `"/Users/foo/images"`. Versions of Venice before and including v1.10.17 are affected by this issue. Upgrade to Venice >= 1.10.18, if you are on a version < 1.10.18. There are currently no known workarounds.
AI Analysis
Technical Summary
CVE-2022-36007 is a path traversal vulnerability affecting the Venice scripting language, a Clojure-inspired sandboxed Lisp dialect with strong Java interoperability. The vulnerability exists in the `load-file` and `load-resource` functions, which are designed to load files from a restricted set of directories defined by a list of load paths. The intended security mechanism restricts file loading to these specified directories to prevent unauthorized file access. However, the vulnerability arises when absolute paths are passed to these functions. While relative paths are correctly validated and prevented from accessing files outside the allowed directories, absolute paths that share a prefix with a configured load path can bypass this restriction. For example, if the load path is `/Users/foo/resources`, a relative path like `../resources-alt/test.png` is rejected, but an absolute path `/Users/foo/resources-alt/test.png` is accepted and loaded, even though it lies outside the intended directory. This partial path traversal flaw allows an attacker who can influence the input to these functions to access files outside the restricted directories, potentially exposing sensitive files or configuration data. The issue affects Venice versions up to and including 1.10.16 and was fixed in version 1.10.18. There are no known workarounds currently, and no known exploits have been reported in the wild. The vulnerability is classified under CWE-22 (Improper Limitation of a Pathname to a Restricted Directory). The scope is limited to absolute paths that share a prefix with a load path, which somewhat constrains the attack surface but still poses a risk to confidentiality and integrity of data accessible via the Venice environment. Exploitation requires the ability to invoke these vulnerable functions with crafted absolute paths, which may depend on the deployment context of Venice within an organization’s software stack.
Potential Impact
For European organizations using Venice in their software environments, this vulnerability could lead to unauthorized disclosure of sensitive files or unauthorized modification if the loaded files influence program behavior. Since Venice is a niche language primarily used for scripting within Java environments, the impact is concentrated on organizations that embed Venice for automation, configuration, or scripting tasks. The partial path traversal can allow attackers to read files outside the intended directories, potentially exposing credentials, configuration files, or intellectual property. This can undermine confidentiality and integrity. Availability impact is minimal as the vulnerability does not directly enable denial of service. However, if exploited in a critical system, it could facilitate further attacks or lateral movement. The vulnerability requires the attacker to have some level of interaction with the Venice environment, such as the ability to supply file paths to the vulnerable functions, which may limit exploitation to insider threats or attackers who have already compromised some access. Given the lack of known exploits, the immediate risk is moderate, but organizations relying on Venice should consider the risk of sensitive data exposure and the potential for escalation if combined with other vulnerabilities.
Mitigation Recommendations
The primary mitigation is to upgrade Venice to version 1.10.18 or later, where this vulnerability is fixed. Since no workarounds exist, patching is critical. Additionally, organizations should audit their use of Venice to identify where `load-file` and `load-resource` functions are called and ensure that inputs to these functions are strictly validated to prevent absolute paths or paths that could lead outside the intended directories. Implement input sanitization to reject absolute paths or normalize paths before loading. Restrict access to the Venice scripting environment to trusted users and processes only, minimizing the risk of malicious input. Employ file system access controls to limit the Venice process’s read permissions strictly to the intended directories, so even if path traversal occurs, the process cannot access unauthorized files. Monitor logs for unusual file access patterns or attempts to load unexpected files. Finally, consider isolating Venice execution environments using containerization or sandboxing to limit the blast radius of any exploitation.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Belgium, Italy
CVE-2022-36007: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in jlangch venice
Description
Venice is a Clojure inspired sandboxed Lisp dialect with excellent Java interoperability. A partial path traversal issue exists within the functions `load-file` and `load-resource`. These functions can be limited to load files from a list of load paths. Assuming Venice has been configured with the load paths: `[ "/Users/foo/resources" ]` When passing **relative** paths to these two vulnerable functions everything is fine: `(load-resource "test.png")` => loads the file "/Users/foo/resources/test.png" `(load-resource "../resources-alt/test.png")` => rejected, outside the load path When passing **absolute** paths to these two vulnerable functions Venice may return files outside the configured load paths: `(load-resource "/Users/foo/resources/test.png")` => loads the file "/Users/foo/resources/test.png" `(load-resource "/Users/foo/resources-alt/test.png")` => loads the file "/Users/foo/resources-alt/test.png" !!! The latter call suffers from the _Partial Path Traversal_ vulnerability. This issue’s scope is limited to absolute paths whose name prefix matches a load path. E.g. for a load-path `"/Users/foo/resources"`, the actor can cause loading a resource also from `"/Users/foo/resources-alt"`, but not from `"/Users/foo/images"`. Versions of Venice before and including v1.10.17 are affected by this issue. Upgrade to Venice >= 1.10.18, if you are on a version < 1.10.18. There are currently no known workarounds.
AI-Powered Analysis
Technical Analysis
CVE-2022-36007 is a path traversal vulnerability affecting the Venice scripting language, a Clojure-inspired sandboxed Lisp dialect with strong Java interoperability. The vulnerability exists in the `load-file` and `load-resource` functions, which are designed to load files from a restricted set of directories defined by a list of load paths. The intended security mechanism restricts file loading to these specified directories to prevent unauthorized file access. However, the vulnerability arises when absolute paths are passed to these functions. While relative paths are correctly validated and prevented from accessing files outside the allowed directories, absolute paths that share a prefix with a configured load path can bypass this restriction. For example, if the load path is `/Users/foo/resources`, a relative path like `../resources-alt/test.png` is rejected, but an absolute path `/Users/foo/resources-alt/test.png` is accepted and loaded, even though it lies outside the intended directory. This partial path traversal flaw allows an attacker who can influence the input to these functions to access files outside the restricted directories, potentially exposing sensitive files or configuration data. The issue affects Venice versions up to and including 1.10.16 and was fixed in version 1.10.18. There are no known workarounds currently, and no known exploits have been reported in the wild. The vulnerability is classified under CWE-22 (Improper Limitation of a Pathname to a Restricted Directory). The scope is limited to absolute paths that share a prefix with a load path, which somewhat constrains the attack surface but still poses a risk to confidentiality and integrity of data accessible via the Venice environment. Exploitation requires the ability to invoke these vulnerable functions with crafted absolute paths, which may depend on the deployment context of Venice within an organization’s software stack.
Potential Impact
For European organizations using Venice in their software environments, this vulnerability could lead to unauthorized disclosure of sensitive files or unauthorized modification if the loaded files influence program behavior. Since Venice is a niche language primarily used for scripting within Java environments, the impact is concentrated on organizations that embed Venice for automation, configuration, or scripting tasks. The partial path traversal can allow attackers to read files outside the intended directories, potentially exposing credentials, configuration files, or intellectual property. This can undermine confidentiality and integrity. Availability impact is minimal as the vulnerability does not directly enable denial of service. However, if exploited in a critical system, it could facilitate further attacks or lateral movement. The vulnerability requires the attacker to have some level of interaction with the Venice environment, such as the ability to supply file paths to the vulnerable functions, which may limit exploitation to insider threats or attackers who have already compromised some access. Given the lack of known exploits, the immediate risk is moderate, but organizations relying on Venice should consider the risk of sensitive data exposure and the potential for escalation if combined with other vulnerabilities.
Mitigation Recommendations
The primary mitigation is to upgrade Venice to version 1.10.18 or later, where this vulnerability is fixed. Since no workarounds exist, patching is critical. Additionally, organizations should audit their use of Venice to identify where `load-file` and `load-resource` functions are called and ensure that inputs to these functions are strictly validated to prevent absolute paths or paths that could lead outside the intended directories. Implement input sanitization to reject absolute paths or normalize paths before loading. Restrict access to the Venice scripting environment to trusted users and processes only, minimizing the risk of malicious input. Employ file system access controls to limit the Venice process’s read permissions strictly to the intended directories, so even if path traversal occurs, the process cannot access unauthorized files. Monitor logs for unusual file access patterns or attempts to load unexpected files. Finally, consider isolating Venice execution environments using containerization or sandboxing to limit the blast radius of any exploitation.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2022-07-15T00:00:00.000Z
- Cisa Enriched
- true
Threat ID: 682d9849c4522896dcbf67e1
Added to database: 5/21/2025, 9:09:29 AM
Last enriched: 6/21/2025, 11:53:39 PM
Last updated: 8/9/2025, 12:45:45 PM
Views: 13
Related Threats
CVE-2025-8833: Stack-based Buffer Overflow in Linksys RE6250
HighCVE-2025-7965: CWE-352 Cross-Site Request Forgery (CSRF) in CBX Restaurant Booking
MediumCVE-2025-8832: Stack-based Buffer Overflow in Linksys RE6250
HighCVE-2025-8831: Stack-based Buffer Overflow in Linksys RE6250
HighCVE-2025-8829: OS Command Injection in Linksys RE6250
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.