CVE-2026-44225
published 2026-05-12CVE-2026-44225: Pulpy is a lightweight, cross-platform desktop application packager for web apps. Prior to 0.1.1, Pulpy injects a pulpy.fs JavaScript API into every packaged…
PriorityP265critical9.3CVSS 3.1
AVNACLPRNUIRSCCHIHAN
EXPLOIT
EPSS
1.10%
62.0th percentile
Pulpy is a lightweight, cross-platform desktop application packager for web apps. Prior to 0.1.1, Pulpy injects a pulpy.fs JavaScript API into every packaged web application, giving it access to the host filesystem. A validateFsPath() function is supposed to sandbox this access, but its blocklist is incomplete. Any web app packaged with Pulpy can read and write arbitrary files in the user's home directory — including ~/.ssh/id_rsa, ~/.aws/credentials, and ~/Library/Keychains/. This vulnerability is fixed in 0.1.1.
Affected
1 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| enesgkky | pulpy | < 0.1.1 | 0.1.1 |
Detection & IOCsextracted from sources · hover to see the quote
- →Detect JavaScript calls to the `pulpy.fs` API (e.g., `pulpy.fs.readFile`) targeting sensitive home-directory paths such as `.ssh/`, `.aws/`, or `Library/Keychains/` — these indicate sandbox bypass exploitation. ↗
- →Monitor for outbound HTTP POST requests from Pulpy-packaged applications to external domains immediately after filesystem reads — this is the exfiltration pattern demonstrated in the PoC. ↗
- →The vulnerable path validation in `src/bridge/native_modules.mm` only blocks paths beginning with `/etc/`, `/var/`, `/usr/`, `/System/`, or `/Library/` — any path outside these prefixes (including all user home directory paths) bypasses the sandbox entirely. ↗
- →Flag Pulpy application versions prior to 0.1.1 (stable) in software inventory; the exploit author notes the bypass also affects the 0.1.1-Beta release. ↗
- ·The blocklist in `validateFsPath()` is prefix-based and only covers system-level directories; it provides no protection for any path under the user's home directory (`/Users/<username>/`), making the sandbox ineffective for protecting user data. ↗
- ·The path normalization uses `fs::weakly_canonical()` before the blocklist check, but this does not prevent traversal into unblocked directories such as `~/.ssh/` or `~/.aws/`. ↗
- ·The PoC requires the attacker to know or dynamically resolve the target's username to construct the full absolute path (e.g., `/Users/<username>/.ssh/id_rsa`); however, this is trivially obtainable from within a running application context. ↗
CVEs like this are exactly what “Exploited This Week” covers.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
No detection rules found.
No writeups or analysis indexed.
2026-05-12
Published