Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#7,287 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
62/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
security

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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).

Ngôn ngữ chính
Shell
Star
22
Fork
2
Merge trung bình
8 giờ 24 phút
Pull request đã merge (30 ngày)
947

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của melodic-software/claude-code-plugins

Tất cả issue của melodic-software/claude-code-plugins

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.