Rust: Update supported-frameworks.rst and add a few more native-tls models - #22382
Rust: Update supported-frameworks.rst and add a few more native-tls models#22382geoffw0 wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates Rust framework documentation and expands TLS taint-flow modeling.
Changes:
- Documents Axum and native TLS crates.
- Adds native, async-native, and Tokio-native TLS summaries.
- Adds synchronous native-tls flow coverage.
Show a summary per file
| File | Description |
|---|---|
test.rs |
Adds native-tls flow test. |
TaintSources.expected |
Updates source expectations. |
options.yml |
Adds native-tls dependency. |
InlineFlow.expected |
Updates flow expectations. |
Cargo.lock |
Records direct dependency. |
native-tls.model.yml |
Adds TLS summaries. |
| Change note | Announces analysis improvements. |
supported-frameworks.rst |
Documents supported Rust crates. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 7/8 changed files
- Comments generated: 3
- Review effort level: Balanced
| data: | ||
| - ["<native_tls::TlsConnector>::connect", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["<async_native_tls::connect::TlsConnector>::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["async_native_tls::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] |
There was a problem hiding this comment.
The original Copilot suggested model was async_native_tls::connect::connect, I looked at the crate and decided it probably should be just async_native_tls::connect. Given what you've stated above I'll add a test case to confirm with confidence which version is actually correct.
| - ["<async_native_tls::connect::TlsConnector>::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["async_native_tls::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["<tokio_native_tls::TlsConnector>::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] |
There was a problem hiding this comment.
We don't, in general, aim to test every single model individually.
I will add a test for the async_native_tls case as there's a legitimate question over the correct canonical path in that case.
| - ["<native_tls::TlsConnector>::connect", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["<async_native_tls::connect::TlsConnector>::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["async_native_tls::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] | ||
| - ["<tokio_native_tls::TlsConnector>::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] |
There was a problem hiding this comment.
That's true, but modelling of tokio_native_tls is rather minimal at the moment (literally just this one model). So I'd rather not claim coverage at this time.
I spotted some gaps in
supported-frameworks.rst, which motivated (via a Copilot suggestion) a few model improvements as well:axumis supported (sources + sinks).native-tlsandasync-native-tlsare supported (sinks).