SSRF (Falsification de requête côté serveur) dans praisonaiagents (CVE-2026-40150)
Résumé
SSRF dans praisonaiagents (CVE-2026-40150). Des informations confidentielles peuvent être exposées. Exploitable via httpx. Atténuation : mise à jour vers 1.5.128 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
The web_crawl() function in praisonaiagents/tools/web_crawl_tools.py accepts arbitrary URLs from AI agents with zero validation. No scheme allowlisting, hostname/IP blocklisting, or private network checks are applied before fetching. This allows an attacker (or prompt injection in crawled content) to force the agent to fetch cloud metadata endpoints, internal services, or local files via file:// URLs.
Details
The web_crawl() function at web_crawl_tools.py:182 accepts a URL string or list of URLs and passes them directly to HTTP clients without any SSRF protections:
# web_crawl_tools.py:182-234
def web_crawl(
urls: Union[str, List[str]],
provider: Optional[str] = None,
) -> Union[Dict[str, Any], List[Dict[str, Any]]]:
# Normalize to list
single_url = isinstance(urls, str)
# ...
url_list = [urls] if single_url else urls
# No URL validation whatsoever — urls flow directly to providers
if selected == "tavily":
results = _crawl_with_tavily(url_list)
elif selected == "crawl4ai":
results = _crawl_with_crawl4ai(url_list)
else:
results = _crawl_with_httpx(url_list) # Always-available fallback
The _crawl_with_httpx() fallback at line 133 makes the actual requests:
# web_crawl_tools.py:140-150
try:
import httpx
with httpx.Client(follow_redirects=True, timeout=30.0) as client:
response = client.get(url) # Line 143: fetches ANY URL, follows re…
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-40150 a été découverte dans praisonaiagents.
Des attaquants peuvent cibler un point d'entrée spécifique comme httpx à distance pour détourner le produit.
Des informations confidentielles peuvent être exposées.
Action : mettez à jour praisonaiagents vers 1.5.128 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « praisonaiagents CVE-2026-40150 » sur le site de l'éditeur.
CVE-2026-40150 (praisonaiagents) — CWE-918
Vecteur d'attaque : distant (réseau) / sans interaction utilisateur
Surface d'attaque : httpx / urllib
Correctif : 1.5.128 — 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 SSRF (CWE-918) affecte praisonaiagents. Les attaquants atteignent le code vulnérable via httpx.
Consultez l'avis de l'éditeur pour les versions affectées de praisonaiagents. Surface d'attaque : httpx / urllib.
Gravité : ?. Des informations confidentielles peuvent être exposées.
Mettre à jour vers 1.5.128.
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 'praisonaiagents' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
praisonaiagentsを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade praisonaiagents to 1.5.128ステージング環境で 1.5.128 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
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