Traversée de chemin dans pptagent (CVE-2026-42080)
Résumé
Traversée de chemin dans pptagent (CVE-2026-42080). Risque d'opérations non autorisées ou de divulgation. Exploitable via save_generated_slides. Atténuation : mise à jour vers 1.1.36 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
This vulnerability has been fixed in https://github.com/icip-cas/PPTAgent/commit/418491a9a1c02d9d93194b5973bb58df35cf9d00.
The save_generated_slides MCP tool accepts a pptx_path argument and writes the generated PPTX file to that path without any workspace restriction or path validation:
# pptagent/mcp_server.py:288-300
async def save_generated_slides(pptx_path: str):
"""Save the generated slides to a PowerPoint file.
Args:
pptx_path: The path to save the PowerPoint file
"""
pptx = Path(pptx_path)
assert len(self.slides), (
"No slides generated, please call `generate_slide` first"
)
pptx.parent.mkdir(parents=True, exist_ok=True) # ← creates arbitrary directories
self.empty_prs.save(pptx_path) # ← writes to arbitrary path
The call to pptx.parent.mkdir(parents=True, exist_ok=True) creates any intermediate directories, and self.empty_prs.save(pptx_path) writes a valid PPTX binary (ZIP archive) to the specified path. No is_relative_to(workspace) check is performed — contrast with download_file in deeppresenter/tools/search.py:290, which correctly enforces workspace confinement.
The server changes directory to WORKSPACE (if set) on startup, so relative paths land in the workspace. Absolute paths, however, reach any filesystem location accessible to the server process.
Impact
The concrete attack scenarios include
- Cron persistence (root-running server): `pptx_path = "…
Source: OSV.dev (Open Source Vulnerabilities) NVD GitHub Advisory OSV
Résumé généré automatiquement
Assemblé par SecPulse à partir des données sources (CVSS, CWE, versions affectées) à l'aide de modèles, sans IA. Vérifiez la description d'origine et les références ci-dessous.
Une vulnérabilité référencée CVE-2026-42080 a été découverte dans pptagent.
Des attaquants peuvent cibler un point d'entrée spécifique comme save_generated_slides à distance pour détourner le produit.
Risque d'opérations non autorisées ou de divulgation.
Action : mettez à jour pptagent vers 1.1.36 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « pptagent CVE-2026-42080 » sur le site de l'éditeur.
CVE-2026-42080 (pptagent) — CWE-22
Vecteur d'attaque : distant (réseau)
Surface d'attaque : save_generated_slides / generate_slide
Correctif : 1.1.36 — appliquer immédiatement
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.
Une traversée de chemin (CWE-22) affecte pptagent. Les attaquants atteignent le code vulnérable via save_generated_slides.
Consultez l'avis de l'éditeur pour les versions affectées de pptagent. Surface d'attaque : save_generated_slides / generate_slide.
Gravité : ?. Risque d'opérations non autorisées ou de divulgation.
Mettre à jour vers 1.1.36.
En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.
Recherchez dans les logs des requêtes correspondant aux IOC connus de cette CVE. Auditez les SBOM/dépendances.
Actions de réponse
Étapes concrètes et exemples de commandes que les équipes SOC/SRE doivent exécuter dans l'ordre
-
1Identify exposure identify
grep -r 'pptagent' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
pptagentを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade pptagent to 1.1.36ステージング環境で 1.1.36 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Paquets affectés
Références
- advisory nvd.nist.gov
- package github.com
- web github.com
- web github.com