
Prueba de concepto del exploit para CVE-2026-26030, que demuestra la ejecución remota de código mediante expresiones de filtro inseguras en InMemoryVectorStore de Microsoft Semantic Kernel.
CVE-2026-26030
Las expresiones de filtro no confiables en InMemoryVectorStore permiten una resolución de atributos insegura que conduce a la ejecución arbitraria de código Python mediante __builtins__ / globals.
Mohammed Idrees Banyamer
Investigador de Seguridad
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
Descripción
Las expresiones de filtro no confiables / controladas por el usuario que se pasan a InMemoryVectorStore se evalúan de forma insegura, lo que permite la travesía de atributos que alcanza __builtins__, globals y, finalmente, el módulo os, lo que resulta en la ejecución arbitraria de código Python.
Notas importantes
La demostración del exploit se proporciona en un archivo separado:
exploit.py
# 1. Instalar la versión vulnerable (¡solo para fines de prueba/investigación!)
pip install semantic-kernel==1.39.0
# 2. Ejecutar el PoC
python3 exploit.py
Actualice inmediatamente a semantic-kernel >= 1.39.4
Las aplicaciones que usan InMemoryVectorStore deben:
Licencia MIT
Copyright © 2026 Mohammed Idrees Banyamer