T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Third-Party Dependency Is Granted Broad Browser Cookie Access## Vulnerability Details **File Location**: `SKILL.md:12-22` **Vulnerability Type**: Unpinned security-sensitive third-party dependency **Risk Level**: Medium **Complete Code Snippet**: ```markdown ## Requirements - Python 3.8+ - pyoverleaf (`pipx install pyoverleaf`) - User logged into Overleaf in Chrome/Firefox ## Security Considerations ⚠️ **Keychain Access Required**: pyoverleaf needs "Always Allow" keychain access to read browser cookies. This grants the tool access to your browser's cookie storage. **Security audit**: We have audited pyoverleaf v0.1.7 and found it safe. The codebase is small and readable. Before installing, agents can self-audit the latest version at the GitHub repo above. ``` ### Technical Analysis The installation command `pipx install pyoverleaf` does not pin the dependency to the stated audited version, `v0.1.7`. Consequently, users may install a newer release whose source code differs from the reviewed version. This dependency is security-sensitive because the instructions ask users to grant it persistent “Always Allow” keychain access so that it can read browser cookie storage. Browser cookie access can expose authentication material beyond the narrow Overleaf operation being performed, depending on the browser-cookie library, operating system, browser profile, and keychain permission boundaries. The combination of an unpinned package and broad credential access creates a supply-chain risk. A malicious or compromised future package release could execute under the user's account and attempt to collect or misuse accessible browser session material. The audit found no evidence that the currently documented dependency is malicious; the vulnerability is the failure to ensure that the installed package is the reviewed package. The same unpinned installation command also appears in `README.md:16-18`: ```markdown # Install pyoverleaf CLI pipx install pyoverleaf ``` ### Attack Path ...[truncated 1934 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to the exact reviewed version: ```bash pipx install 'pyoverleaf==0.1.7' ``` 2. Distribute and verify a cryptographic hash or use a locked, reproducible dependency manifest so that installation resolves to the reviewed artifact. 3. Re-audit the dependency before updating the pinned version, and update the documented audited version and hashes together. 4. Prefer an Overleaf-scoped API token or another narrowly scoped authentication mechanism if supported. 5. If browser cookies remain necessary, instruct users to use a dedicated browser profile containing only the Overleaf session. 6. Avoid requesting persistent “Always Allow” keychain access when per-use authorization is sufficient. 7. Clearly document which cookie databases, domains, and keychain records the dependency can access. 8. Add dependency integrity and provenance checks to installation instructions, such as installing from a verified release artifact. 9. Remove the suggestion that users independently audit the unspecified “latest version”; package security should be enforced through a maintained pinning and review process rather than delegated to each user.
