Yeah, context free is a misnomer: it has a technical sense of “amendable to parsing by a push-down automaton”, and a common sense “you don’t need to see the context to decide what the thing is”. It happens than technically context free languages are actually “context-sensitive” in the common sense.
So technically, even Rust’s lexical grammar is not context free. (Proof: the culprit is raw string literals, you can intersect them with a regular language and apply the pumping lemma). But if we treat tokens as symbols, then the syntactic grammar looks like context free (there are a couple of LALR style grammars out there, but as far as I know neither have been extensively compared with the canonical rustc parser).
In practice, Rust is relatively easy to parse by an LL-style parser, though there is some weirdness around semi-statement blockish expressions like
match, etc, and there are surprising rules about struct literals in conditionals.