31 lines
2 KiB
Markdown
31 lines
2 KiB
Markdown
|
|
# Security Review Task List
|
||
|
|
|
||
|
|
## 1. Unsafe Unwraps in Production (Violates AGENTS.md Error Handling Rules)
|
||
|
|
The `AGENTS.md` explicitly forbids the use of `.unwrap()`, `.expect()`, `panic!()`, `todo!()`, and `unimplemented!()` in production code. A search of the codebase revealed several instances of `unwrap()` being used in non-test contexts.
|
||
|
|
|
||
|
|
**Vulnerable Locations:**
|
||
|
|
- `botserver/src/drive/drive_handlers.rs:269` - Contains a `.unwrap()` call during `Response::builder()` generation, which could panic in production.
|
||
|
|
- `botserver/src/basic/compiler/mod.rs` - Contains `unwrap()` usages outside test boundaries.
|
||
|
|
- `botserver/src/llm/llm_models/deepseek_r3.rs` - Contains `unwrap()` usages outside test boundaries.
|
||
|
|
- `botserver/src/botmodels/opencv.rs` - Test scopes use `unwrap()`, but please audit carefully for any leaks to production scope.
|
||
|
|
|
||
|
|
**Action:**
|
||
|
|
- Replace all `.unwrap()` occurrences with safe alternatives (`?`, `unwrap_or_default()`, or pattern matching with early returns) and use `ErrorSanitizer` to avoid panics.
|
||
|
|
|
||
|
|
## 2. Dependency Vulnerabilities (Found by cargo audit)
|
||
|
|
Running `cargo audit` uncovered a reported vulnerability inside the dependency tree.
|
||
|
|
|
||
|
|
**Vulnerable Component:**
|
||
|
|
- **Crate:** `glib`
|
||
|
|
- **Version:** `0.18.5`
|
||
|
|
- **Advisory ID:** `RUSTSEC-2024-0429`
|
||
|
|
- **Title:** Unsoundness in `Iterator` and `DoubleEndedIterator` impls for `glib::VariantStrIter`
|
||
|
|
- **Dependency Tree context:** It's pulled through `botdevice` and `botapp` via Tauri plugins and GTK dependencies.
|
||
|
|
|
||
|
|
**Action:**
|
||
|
|
- Review dependencies and upgrade the GTK/Glib ecosystem dependencies if patches are available, or evaluate the exact usage to assess the direct risk given the desktop GUI context.
|
||
|
|
|
||
|
|
## 3. General Posture Alignment
|
||
|
|
- Ensure all new state-changing endpoints are correctly shielded by the custom CSRF store (`redis_csrf_store.rs`). Verification is recommended as standard `tower-csrf` is absent from `Cargo.toml`.
|
||
|
|
- Confirm security headers (`Content-Security-Policy` via `headers.rs`) are indeed attached universally in `botserver` and not selectively omitted in new modules.
|