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

macOS sandbox blocks ps-backed recording process identity

Đang mở
#2,376 0 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ó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
ios, macos, node.js, typescript

Hướng nghiên cứu

Bắt đầu từ module host-process dùng chung và lần theo readProcessStartTime cùng readProcessCommand đến phần khởi động simctl recordVideo. Trên macOS, kiểm tra đường dẫn /bin/ps hiện có và native probe bắt buộc, bao gồm việc parsing có giới hạn và giữ nguyên ranh giới của các đối số. Được xem là hoàn thành khi các kiểm thử về sandbox, đầu vào sai định dạng, ownership và bắt đầu/dừng ghi hình đều đạt với một artifact có thể phát được, trong khi hành vi trên các hệ điều hành không phải macOS vẫn không thay đổi.

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

Mô tả

Purpose

Allow iOS simulator recording to establish and verify process ownership inside a macOS sandbox that refuses execution of /bin/ps.

Reproduction

Run a synthetic Node child-process identity query under sandbox-exec -p '(version 1)(allow default)'. On macOS where /bin/ps is setuid, its execution is refused. readProcessStartTime and readProcessCommand return null, and recording startup can fail with simctl recordVideo did not expose a complete process identity.

The shared host-process module currently shells out to ps. A non-privileged native probe using proc_pidinfo(PROC_PIDTBSDINFO) and sysctl(KERN_PROCARGS2) can read the same owned child under this policy. PROC_PIDTBSDINFO needs a nonzero argument to include zombie processes.

Required behavior

  • Keep command/start-time ownership checks and fail closed when identity cannot be proven; do not replace ownership with PID liveness alone.
  • Bound native reads and preserve argument boundaries before rendering the existing command string.
  • Detect changed start identity, zombie state, permission refusal, and exited processes.
  • Package the native implementation without a global installation and keep non-macOS behavior unchanged.

Completion evidence

Real sandbox tests on synthetic owned children, malformed/bounded parsing tests, and iOS recording start/stop with a nonempty playable artifact. No benchmark transcripts or private run results are needed.

Ngôn ngữ chính
TypeScript
Star
4.7k
Fork
304
Merge trung bình
11 giờ 19 phút
Pull request đã merge (30 ngày)
539

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 callstack/agent-device

Tất cả issue của callstack/agent-device

Issue tương tự

Thêm issue về TypeScript

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.