This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.

Crate vigil-server

Dependencies

(29 total, 7 outdated, 3 possibly insecure)

CrateRequiredLatestStatus
 log^0.40.4.33up to date
 clap^4.34.6.6up to date
 lazy_static^1.41.5.0up to date
 time ⚠️^0.30.3.55maybe insecure
 serde^1.01.0.229up to date
 serde_derive^1.01.0.229up to date
 toml^0.91.1.4+spec-1.1.0out of date
 envsubst^0.20.2.1up to date
 uuid^1.11.24.0up to date
 regex^1.61.13.1up to date
 url^2.22.5.8up to date
 url_serde^0.20.2.0up to date
 http^1.31.5.0up to date
 http-serde^2.12.1.1up to date
 indexmap^2.112.14.0up to date
 actix-web^4.34.14.1up to date
 actix-files^0.60.6.10up to date
 actix-web-httpauth^0.80.8.2up to date
 rmcp ⚠️^0.93.1.2out of date
 rmcp-actix-web^0.80.12.16out of date
 tera^1.192.1.0out of date
 native-tls^0.20.2.18up to date
 openssl-probe^0.10.2.1out of date
 reqwest^0.120.13.4out of date
 ping^0.70.9.0out of date
 ssh2^0.90.9.6up to date
 run_script^0.110.11.2up to date
 lettre ⚠️^0.110.11.23maybe insecure
 libstrophe^0.200.20.3up to date

Security Vulnerabilities

time: Denial of Service via Stack Exhaustion

RUSTSEC-2026-0009

Impact

When user-provided input is provided to any type that parses with the RFC 2822 format, a denial of service attack via stack exhaustion is possible. The attack relies on formally deprecated and rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary, non-malicious input will never encounter this scenario.

Patches

A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned rather than exhausting the stack.

Workarounds

Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of the stack consumed would be at most a factor of the length of the input.

lettre: TLS hostname verification disabled when using Boring TLS backend

RUSTSEC-2026-0141

An inverted-boolean bug in lettre's boring-tls integration silently disables TLS hostname verification for callers using the default (strict) configuration. An on-path attacker presenting any chain-valid certificate for any domain can intercept SMTP submission, including PLAIN/LOGIN credentials and message contents, against any lettre user built with the boring-tls feature. Other TLS backends (native-tls, rustls) are unaffected.

The bug was introduced in v0.10.1 and persists through v0.11.21 (latest).

rmcp: DNS rebinding vulnerability in rmcp Streamable HTTP server transport

RUSTSEC-2026-0189

Prior to version 1.4.0, the rmcp crate's Streamable HTTP server transport did not validate the incoming Host header.

This allowed a malicious public website, via a DNS rebinding attack, to send requests to an MCP server running on the victim's loopback or private-network interface.

An attacker who convinced a victim to visit a malicious page could enumerate and invoke tools exposed by a locally running rmcp-based MCP server, read resources and prompts, and trigger side effects limited by the tools exposed by that server.

Non-HTTP transports such as stdio and child-process transports are not affected.

Patches

The issue was fixed in rmcp 1.4.0 by adding default loopback-only host allowlist validation for the Streamable HTTP server transport. Incoming HTTP requests now validate the Host header and return HTTP 403 when the host is not allowed.

Users should upgrade to rmcp >= 1.4.0.

Workarounds

If upgrading is not possible, place the MCP server behind a reverse proxy configured to reject requests whose Host header is not one of the expected hostnames. Do not bind the MCP server to 0.0.0.0 without such validation.