Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

disk-hygiene: kill switch trusts /etc/claude-code managed settings on WSL, where that directory is user-writable

Abierto
#7,287 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
62/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
security

Línea de trabajo

Start with plugins/disk-hygiene/lib/killswitch_config.py, especially managed_settings_path and resolve_effective; check how the existing platform detection and managed settings precedence work. Verify how WSL can be identified and how to determine whether the managed path is trusted. Done when a user-writable WSL managed path cannot override the user's setting and the docstring reflects the behavior.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

needs-human

Summary

disk-hygiene's kill switch treats /etc/claude-code/managed-settings.json as a root-owned path that cannot be forged, and lets a value configured there override the user's setting. On WSL the live docs say /etc/claude-code is user-writable, so any process running as the user can stand in for organization policy: it can replace an organization's audit-only setting, or force-enable the clean skill's execution tiers over the user's own audit-only choice.

Affected area / component

plugins/disk-hygiene/lib/killswitch_config.py

Steps to reproduce

  1. On WSL, as the ordinary user, write /etc/claude-code/managed-settings.json (or a file in /etc/claude-code/managed-settings.d/) that sets pluginConfigs["disk-hygiene@<marketplace>"].options.disk_hygiene_enabled to true.
  2. Set the same option to false (audit-only) in user settings.
  3. Call resolve_effective() with the platform's managed path. The managed value wins and the execution tiers are enabled.

(Repro is from reading the code path; not run.)

Expected behavior

On platforms where the managed directory is user-writable, the guard does not treat that path as an organization-controlled source for the kill switch.

Actual behavior

  • killswitch_config.py:45-78 (managed_settings_path): the docstring says the file "lives at a fixed, root-owned system path per platform, so a repo cannot forge it", and the function returns /etc/claude-code/managed-settings.json for every linux* platform, WSL included.
  • killswitch_config.py:291-317 (resolve_effective): a configured managed value is returned before user settings are read.
  • Live docs, https://code.claude.com/docs/en/managed-settings#present-admin-documents (read 2026-10-12): "On WSL, /etc/claude-code is user-writable as well", with the wslInheritsWindowsSettings entry saying when the Windows documents stand above it.

Suggested fix

Detect WSL and treat a user-writable managed path as untrusted for this switch (for example, honor it only when it is root-owned and not writable by the current user), and correct the docstring.

The related fail-open gap (the guard's hook rows do not set onFailure: "block") is tracked in #6755 and is not repeated here.

Environment

WSL; disk-hygiene on main as of 2026-10-12.

Found during the upstream-pointer sweep (PRs #7061-#7274).

Lenguaje dominante
Shell
Estrellas
22
Forks
2
Merge medio
8 h 27 min
PR fusionados (30 d)
957

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de melodic-software/claude-code-plugins

Todos los issues de melodic-software/claude-code-plugins

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.