crates.io security incident: improperly stored session cookies

Bài tóm tắt Rust 2025 2. Tăng trưởng Độ khó: Dễ

Rust · 2025 · 2. Tăng trưởng · Độ khó: Dễ — bài gốc

Chuyện gì đã xảy ra

  • Đội crates.io phát hiện giá trị cookie cargo_session (giá trị đã ký, định danh user đang đăng nhập, đủ để giả danh user đó) bị gửi kèm payload sự kiện lỗi lên dịch vụ giám sát lỗi Sentry mỗi khi backend gặp lỗi.
  • Quyền vào Sentry chỉ có một nhóm nhỏ vốn đã có quyền vào production; không có dấu hiệu giá trị bị truy cập hay dùng.

Thay đổi chính

  • Deploy ngay thay đổi che mọi giá trị cookie trong mọi sự kiện gửi lên Sentry.
  • Vô hiệu mọi phiên đăng nhập, làm cookie đã lưu ở Sentry thành vô dụng: mọi user bị đăng xuất khỏi trình duyệt.
  • API token không bị ảnh hưởng vì đi qua header Authorization, vốn đã được che từ trước.

Bài học cho SWE

  • Hệ giám sát lỗi và log là nơi secret lọt ra ngoài phổ biến: payload request được gửi nguyên văn trừ khi có quy tắc che.
  • Che theo danh sách cho phép (chỉ gửi trường đã biết là an toàn) bền hơn che theo danh sách cấm; ở đây header được che nhưng cookie thì không.
  • Khi không chắc credential có bị dùng hay chưa, vô hiệu hoá toàn bộ (đổi khoá ký, đăng xuất mọi người) rẻ hơn điều tra.

Liên quan