Injection de code dans praisonai (CVE-2026-44334)
Résumé
Injection de code dans praisonai (CVE-2026-44334). L'exploitation peut entraîner la prise de contrôle totale du système. Exploitable via POST /v1/recipes/run. Atténuation : mise à jour vers 4.5.139 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
TL;DR
CVE-2026-40287's fix gated tools.py auto-import behind PRAISONAI_ALLOW_LOCAL_TOOLS=true in two files (tool_resolver.py, api/call.py). A third import sink in praisonai/templates/tool_override.py was missed and remains unguarded. It is reached by the recipe runner on every recipe execution and is remotely triggerable through POST /v1/recipes/run with a recipe value pointing at any local absolute path or any GitHub repo (because SecurityConfig.allow_any_github defaults to True). The attacker drops a tools.py next to TEMPLATE.yaml; the server exec_module()s it. No auth required by default, no environment opt-in required.
Patch coverage gap
CVE-2026-40287 was fixed in v4.5.139 by adding an env-var gate at:
| File | Line | Gate |
|---|---|---|
praisonai/tool_resolver.py |
77 | if os.environ.get("PRAISONAI_ALLOW_LOCAL_TOOLS", "").lower() != "true": |
praisonai/api/call.py |
80 | same |
But the equivalent sinks in praisonai/templates/tool_override.py were not patched:
# tool_override.py - create_tool_registry_with_overrides()
332 cwd_tools_py = Path.cwd() / "tools.py"
333 if cwd_tools_py.exists():
334 try:
335 tools = loader.load_from_file(str(cwd_tools_py)) # <-- exec_module
336 registry.update(tools)
337 except Exception:
338 pass
339
341 # 4. Template-local tools.py
342 if template_dir:
343 tools_py = Path(template_dir) / "tools.py"…
Source: NIST National Vulnerability Database NVD GitHub Advisory
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-44334 a été découverte dans praisonai.
Des attaquants peuvent cibler un point d'entrée spécifique comme POST /v1/recipes/run à distance pour détourner le produit.
L'exploitation peut entraîner la prise de contrôle totale du système. Score CVSS : 8.4/10.
Action : mettez à jour praisonai vers 4.5.139 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « praisonai CVE-2026-44334 » sur le site de l'éditeur.
CVE-2026-44334 (praisonai) — CWE-94 / CVSS v3 8.4
Vecteur d'attaque : local / non authentifié / sans interaction utilisateur
Surface d'attaque : POST /v1/recipes/run / tools.py / tool_resolver.py / recipe
Correctif : 4.5.139 — 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 exécution de code arbitraire (CWE-94) affecte praisonai. Les attaquants atteignent le code vulnérable via POST /v1/recipes/run sans authentification.
Consultez l'avis de l'éditeur pour les versions affectées de praisonai. Surface d'attaque : POST /v1/recipes/run / tools.py / tool_resolver.py / recipe.
Gravité : Élevée (CVSS 8.4/10). L'exploitation peut entraîner la prise de contrôle totale du système.
Mettre à jour vers 4.5.139.
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 webserver/proxy/WAF des requêtes anormales vers POST /v1/recipes/run (en-têtes d'auth malformés, méta-caractères SQL). Auditez les fichiers de dépendances pour trouver praisonai.
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 'praisonai' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
praisonaiを grep し、稼働しているサービス・バージョンを把握する。 -
2Hunt for indicators of compromise detect
grep 'POST /v1/recipes/run' /var/log/nginx/access.log | grep -E '(unusual_payload|sqli_pattern)'アクセスログで
POST /v1/recipes/runへの異常なリクエスト (不正な認証ヘッダ・SQLメタ文字)を過去 30〜90日分捜索。WAF/SIEM があれば該当パスのアラート発火履歴を確認。 -
3Apply patch patch
Upgrade praisonai to 4.5.139ステージング環境で 4.5.139 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスと、Step 2 で見つけた異常検知の続報チェックを含めること。
-
4Post-deployment verification verify
Replay attack against POST /v1/recipes/run on staging to confirm patch closes the vectorパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番では Step 2 と同じログクエリでアラート再発が無いか継続監視。
Paquets affectés
Références
- advisory github.com
- advisory nvd.nist.gov
- package github.com
- web github.com
- web github.com