Re: [D] Threat model: how should Thread Context (MDC) keys be classified (trusted structural or untrusted content) ? [logging-log4j2]
rm5248 (via GitHub) <[email protected]> Mon, 01 Jun 2026 13:02:14 -0000
| Newsgroups | gmane.comp.jakarta.log4j.devel |
|---|---|
| Message-ID | <ghd-D_kwDOAKJSSM4AmyP1-7131c2c9-20af-4429-842e-0de94be8d737@gitbox.apache.org> |
GitHub user rm5248 added a comment to the discussion: Threat model: how should Thread Context (MDC) keys be classified (trusted structural or untrusted content)?
For safe vs. unsafe strings, I'll take an idea from [Joel Spolsky](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/) and propose something like the following:
```
MDC map;
map[key_from_user] = value_from_user; // unsafe
map[SafeString("foobar")] = SafeString("baz"); // both safe strings
map[SafeString("bar")] = value_from_user; // safe key, unsafe value
```
The idea is that all strings in the MDC are unsafe by default, but you could wrap them in a `SafeString` to do whatever else it is that safe does.
Note: I'm not suggesting implementing this at the moment, as looking at Jan's comments I would tend to agree that both the keys and values should be unsafe by default. If there is a demand for safe strings in the MDC, something like the above could provide a good implementation.
GitHub link: https://github.com/apache/logging-log4j2/discussions/4132#discussioncomment-17135766
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]