
Preuve de concept pour CVE-2026-26030, démontrant l'exécution de code à distance via des expressions de filtre non sécurisées dans InMemoryVectorStore de Microsoft Semantic Kernel.
CVE-2026-26030
Les expressions de filtre non fiables dans InMemoryVectorStore permettent une résolution d'attributs non sécurisée conduisant à l'exécution arbitraire de code Python via la traversée de __builtins__ / globals.
Mohammed Idrees Banyamer
Chercheur en sécurité
flowchart TD
A[User-controlled filter string] --> B[Passed to VectorStore query/filter]
B --> C[InMemoryVectorStore evaluates filter expression unsafely]
C --> D[Unsafe attribute resolution via __class__ / __base__ / __subclasses__]
D --> E[Access to __init__.__globals__ containing os and __builtins__]
E --> F[Arbitrary code execution e.g. os.system]
F --> G[Remote Code Execution in application context]
style G fill:#ff6666,stroke:#333,stroke-width:2px
Description
Les expressions de filtre non fiables / contrôlées par l'utilisateur transmises à InMemoryVectorStore sont évaluées de manière non sécurisée, permettant une traversée d'attributs qui atteint __builtins__, globals, et finalement le module os — ce qui entraîne l'exécution arbitraire de code Python.
Remarques importantes
La démonstration de l'exploit est fournie dans un fichier séparé :
exploit.py
# 1. Install vulnerable version (for testing / research purposes only!)
pip install semantic-kernel==1.39.0
# 2. Run the PoC
python3 exploit.py
Mettez à niveau immédiatement vers semantic-kernel >= 1.39.4
Les applications utilisant InMemoryVectorStore devraient :
Licence MIT
Copyright © 2026 Mohammed Idrees Banyamer