hyperlight-dev / hyperlight-dev/hyperlight

Replace generic HyperlightError::Error variant with specific error types to improve sandbox poisoning accuracy

Đang mở
#998 2 bình luận 0 reaction 1 người được giao Được @ludfjig nhận Xem trên GitHub
area/security lifecycle/confirmed
Ngôn ngữ chính
Rust
Star
4.7k
Fork
208
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
47

Mô tả

The sandbox poisoning mechanism relies on accurate error information and strong typing to determine when a sandbox has entered an inconsistent state requiring recovery. Currently, the `HyperlightError::Error` variant is a generic catch-all error type that can be created using the `new_error!` macro.

The problem is that `HyperlightError::Error` can be (and is) used for situations that should poison the sandbox, but the error type doesn't provide enough information for the poisoning logic to make the correct determination. This creates a safety hole where:

- Critical errors that leave the sandbox in an inconsistent state might be wrapped in generic error variants
- The poisoning mechanism cannot distinguish between benign errors and those that compromise sandbox state
- Sandboxes that should be poisoned may continue to be used

## Solution
Replace all instances of `HyperlightError::Error` with specific, strongly-typed error variants that accurately describe the error condition.

As an aside, we should probably distinguish between internal errors and public errors. Right now all errors are pub because they all are part of the same enum. I think splitting errors by something like file/module/struct/method is a good idea in general.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

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.