
Prova de conceito de exploit para CVE-2026-26030, demonstrando execução remota de código por meio de expressões de filtro inseguras no InMemoryVectorStore do Microsoft Semantic Kernel.
CVE-2026-26030
Expressões de filtro não confiáveis em InMemoryVectorStore permitem resolução insegura de atributos, levando à execução arbitrária de código Python via travessia de __builtins__ / globals.
Mohammed Idrees Banyamer
Pesquisador de Segurança
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
Descrição
Expressões de filtro não confiáveis / controladas pelo usuário passadas para InMemoryVectorStore são avaliadas de forma insegura, permitindo travessia de atributos que alcança __builtins__, globals e, eventualmente, o módulo os — resultando em execução arbitrária de código Python.
Notas importantes
A demonstração do exploit é fornecida em um arquivo separado:
exploit.py
# 1. Instale a versão vulnerável (apenas para fins de teste/pesquisa!)
pip install semantic-kernel==1.39.0
# 2. Execute o PoC
python3 exploit.py
Atualize imediatamente para semantic-kernel >= 1.39.4
Aplicações que usam InMemoryVectorStore devem:
Licença MIT
Copyright © 2026 Mohammed Idrees Banyamer