A backdoor is a hidden means of access to a system that bypasses its normal authentication or controls, placed there deliberately by someone able to modify the system or the chain that delivers it. MITRE files the structural property as CWE-912, Hidden Functionality, covering behavior that is absent from the documentation and the specification and unreachable through any interface a user or administrator would think to try.
What that definition leaves out matters as much as what it holds, because the word backdoor appears nowhere in CWE-912's description, surfacing on that page only inside a cited CVE where someone else had already applied the label.
Why the CWE Catalogue Avoids the Word Backdoor
Intent cannot be read off an artifact, which is why CWE-912 stays neutral about the reasons hidden functionality exists and why its extended description puts Easter eggs and hard-coded developer accounts in the same class as code inserted to undermine a product later. All three are undocumented. Only one was placed with hostile purpose, and nothing in the code separates them.
The child entry hedges harder still, since CWE-506, Embedded Malicious Code, describes a product containing "code that appears to be malicious in nature," which is a careful way of declining to assert malice outright. Calling something a backdoor is an attribution claim stacked on top of a structural observation, and that gap is why a vendor can describe a maintenance interface while a researcher describes the same code as a deliberate way in.
The same logic runs into hardware, where Inclusion of Undocumented Features or Chicken Bits, CWE-1242, covers undocumented bits that can switch off a device's security features. They get included to isolate faulty components or to supply debug and test control that is otherwise missing. MITRE records that they can create entry points for unauthorized actors all the same. The parent above both entries, Incorrect Provision of Specified Functionality, measures against published specifications, which fixes the reference point for the whole family as the documentation rather than anyone's motive.
Three Ways a Backdoor Gets In
Behind the single word sit three cases, separated by who wrote the code. The original developer is the first, and that is the situation CWE-506 has in mind when it describes someone inserting code to weaken a product at a chosen later moment. Whoever compromises the build or distribution process can add one to software whose authors are unaware. An intruder already inside can install one to keep that access after the original hole is closed.
For that reason, CWE-506 records introduction points across the lifecycle, naming implementation, bundling, distribution, and installation as separate opportunities. A backdoor attack mounted through the distribution chain reaches every downstream user who installs the affected version, while one planted after a compromise affects a single environment. Neither set of controls does anything for the other case. Each of the three belongs to the wider category of malicious code and differs mainly in who introduced it.
CISA Described the XZ Utils Backdoor Without Naming It
In late March 2024, the clearest recent case arrived, when malicious code was found in the XZ Utils compression library and assigned CVE-2024-3094. CISA's advisory identifies versions 5.6.0 and 5.6.1 as the affected releases and tells developers and users to downgrade to an uncompromised version such as 5.4.6 Stable.
In the wording of the advisory itself, the catalogue's caution reappears intact. CISA calls it malicious code, able to allow unauthorized access to the systems affected, and nowhere calls it a backdoor.
No such reservation constrained the original disclosure on the oss-security mailing list, which carried the subject line "backdoor in upstream xz/liblzma leading to ssh server compromise." The researcher named intent. The agency and the catalogue described structure and effect, and left the label to others.
Why Does Backdoor Malware Resist Detection?
Against this weakness, MITRE lists four detection methods and rates every one of them as partial: two forms of manual static analysis, one for source and one for binary or bytecode, plus dynamic analysis with results interpreted by hand and automated static analysis. Compare that with path traversal, where eight of the nine methods are rated highly effective, and the gap in difficulty is a matter of record. Size is what holds the rating down, since the mitigation advice asks for all code to be reviewed in detail on the grounds that "it is possible to hide a serious attack in only one or two lines of code." Those lines may sit anywhere in the application, and they may have been obfuscated on purpose.
Pattern matching fails here for a more basic reason, because backdoor malware was never a defect in the first place. A buffer overflow is a mistake with a recognizable shape, while hidden functionality was written on purpose by someone who understood the codebase and wanted it to look ordinary. Review passes it because looking like it belongs is the whole design goal.
What a Backdoor Looks Like While It Is Being Used
Nothing in the code announces itself, and yet the access it grants has to occur before it is worth anything to whoever placed it. A process might read a credential store it has never touched. An authentication path might return success without consulting the directory at all.
The XZ compromise surfaced in just that way, since the disclosure opens on odd symptoms seen over several weeks on Debian sid installations, SSH logins consuming unexpected amounts of CPU, alongside Valgrind errors. Only after those symptoms did the investigation reach the obfuscated script that the release tarballs carried and the upstream git repository did not.
Code review asks whether a function should exist, which is a question about intent and therefore arguable. Raven Runtime ADR asks whether the access happening right now was authorized, a matter of fact rather than motive, and stops the ones that were not. See it at Runtime ADR.

