pyk: arbitrary Python module import from untrusted `kbuild.toml`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 15/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- build-system, security
Línea de trabajo
Start at Source.from_dict in pyk/src/pyk/kbuild/project.py (around line 27), which builds PackageSource from the [dependencies] table, then read PackageSource.resolve (around line 49), which calls importlib.resources.files on the package name. Done means the untrusted package string is validated or restricted to installed or locked distributions, with tests covering a malicious kbuild.toml. The suggested fix also touches the _NODES/_PROOF_TYPES allow-lists, which needs maintainer input.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
PackageSource.resolve imports a Python package named by an untrusted kbuild.toml (kbuild.toml is data fetched/build-time config from the project being processed), giving arbitrary code execution in the pyk process when resolving that package.
1 finding(s) (1 LOW) — line-anchor verified at commit 4a46d1231473.
Findings
| Severity | ID | Location | Summary |
|---|---|---|---|
| LOW | pyk-tools-004 |
pyk/src/pyk/kbuild/project.py:49 |
PackageSource.resolve imports an arbitrary Python module from untrusted kbuild.toml |
Details
pyk-tools-004 — `PackageSource.resolve` imports an arbitrary Python module from untrusted `kbuild.toml` (pyk/src/pyk/kbuild/project.py:49)
Trigger (as reviewed): Source.from_dict (pyk/src/pyk/kbuild/project.py:27) builds PackageSource(dct['package']) from the [dependencies] table of a kbuild.toml with no allow-list or format validation. importlib.resources.files(name) imports the named module (and can import submodules) to locate it, executing its top-level code.
Impact (as reviewed): Cloning an untrusted K project and running kbuild kompile / kbuild which (or any pyk caller of Project.load) triggers import of an attacker-chosen module name, giving arbitrary code execution under the caller's privileges via import side effects. The dependency 'package' is treated as a plain string but is actually an import directive.
Deep review: reachability=REACHABLE-FROM-UNTRUSTED; exploitability=EXPLOITABLE; red-team=VERIFIABLE-UNKNOWN.
Suggested fix
Enforce the declared _NODES/_PROOF_TYPES allow-lists before globals()/locals() dispatch, restrict PackageSource.resolve to installed/locked distributions, and shlex-quote generated bug-report scripts.
From a static audit of this repository at commit 4a46d1231473b599c699160132fd6e76a5c46406 (master). Every location above was verified against the source at that revision; no exploit code was run against this repository or its infrastructure.
- Lenguaje dominante
- Python
- Estrellas
- 605
- Forks
- 165
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de runtimeverification/k
-
Dificultad 4/5 Más de una semana Aptitud para principiantes 15/100
runtimeverification/k#4973 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
runtimeverification/k#4972 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
runtimeverification/k#4971 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
runtimeverification/k#4970 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 18/100
runtimeverification/k#4968 ·
Todos los issues de runtimeverification/k
Issues similares
-
[BUG]: Compliance rules never see Unity Catalog views as viewsPosiblemente ocupada @wagnercsantos la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
databrickslabs/ontos#1348 ·
Los mantenedores suelen responder en 3 días
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.Posiblemente ocupada @pgmzeta la tomó hoy. AbiertoE-Verified P-Major
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
goonstation/goonstation#28259 ·
Los mantenedores suelen responder en 2 días
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
woonstadrotterdam/monumenten#70 ·
Los mantenedores suelen responder en 15 días
-
binding:python bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-webui/open-terminal#210 ·