"Arbitrary domain name resolution" is too vague to be useful as a bug description
- Dominant language
- Shell
- Stars
- 12.6k
- Forks
- 2.9k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 62
Description
In infra/experimental/SystemSan/inspect_dns.cpp, the (experimental) "system sanitizer" (SystemSan) catches `sendmsg()` calls to port 53 of DNS queries in which "the top level domain is only one character and ... there is more than just the TLD", to quote the comment in the code, and reports that as an "Arbitrary domain name resolution".
Unless "arbitrary" or "arbitrary domain name resolution" is used as a term of art to refer to that precise problem, it's a very vague term that could mean "any DNS query that sends a host name other than www.example.com to a resolver is an arbitrary domain name resolution" to "any DNS query that sends a host name of y0u.h4v3.b33n.pwn3d.com to a resolver is an arbitrary domain name resolution" or "any DNS query that sends a host name with characters other than (A-Z), (a-z), (0-9), -, and periods between (non-empty) labels is an arbitrary domain name resolution". "Any DNS query that sends a host name in which the final label is one character long and there are additional labels" is *not* the most obvious meaning of "an arbitrary domain name resolution".
A more precise description is called for here. (And if additional checks are added, more precise descriptions of them would be called for as well.)
(In addition, it might be helpful to indicate precisely what is problematic about such a domain name resolution. Perhaps I missed it, but nothing in the [Injection Attacks Reloaded: Tunnelling Malicious Payloads over DNS](https://www.usenix.org/system/files/sec21-jeitner.pdf) paper from the 30th USENIX Security Symposium appears to mention that. Perhaps there's some other paper or other document that mentions it?)
Contributor guide
Research direction
Open infra/experimental/SystemSan/inspect_dns.cpp and read the comment and diagnostic for the SystemSan DNS check. Review the linked DNS tunnelling paper and the issue discussion for the intended risk and terminology. Done means the diagnostic precisely describes the detected hostname pattern and, if supported by the available documentation, explains why it is problematic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking, security
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100