Nikto Web Scanner Explained: A Practical Guide for Security Teams
An in-depth guide to the Nikto web vulnerability scanner—how it works, what it detects, limitations, and how security teams can use it responsibly.
Jan 14, 2026Tools
In December 2025, defenders were reminded—once again—that memory safety bugs are not a thing of the past.
A critical vulnerability in MongoDB, tracked as CVE-2025-14847 and widely known as MongoBleed, allowed unauthenticated remote attackers to extract arbitrary chunks of server memory simply by sending malformed network messages.
No credentials.
No exploit chain.
No authentication bypass.
Just memory leakage—at scale.
This article breaks down what went wrong, how exploitation worked, and what CISOs and engineering leaders should take away from one of the most consequential database vulnerabilities in recent years.
MongoBleed is not a theoretical bug. It was exploited precisely because it was easy, quiet, and devastating.
MongoBleed is a memory disclosure vulnerability in MongoDB's network message compression handling, specifically when using zlib compression.
MongoDB supports compressing wire-protocol messages to improve performance. During connection setup, the client and server negotiate which compression algorithm to use. In vulnerable versions, this negotiation exposed a critical flaw:
MongoDB trusted attacker-controlled metadata describing the expected size of decompressed data.
This trust was misplaced.
At a technical level, MongoBleed is caused by incorrect length handling during decompression.
That leftover memory often contains high-value secrets.
| Property | Why It Matters |
|---|---|
| Pre-auth | Reachable from the internet |
| Memory disclosure | Secrets leak without crashes |
| Repeatable | Attackers can harvest memory over time |
| Quiet | No obvious alerts or failures |
| Low skill | No exploit chaining required |
This is the kind of vulnerability attackers love—and defenders hate.
⚠️ The following examples are illustrative pseudocode.
They are non-runnable and exist solely to clarify the threat model.
No authentication is required.
Attacker → TCP 27017 → MongoDB ServerMongoDB advertises supported compressors during the initial handshake.
Client: supports zlib
Server: accepts zlibConceptually:
# illustrative only
hello = {
"op": "hello",
"compression": ["zlib"]
}
send(hello)This immediately places the connection on the vulnerable code path.
The attacker sends:
# illustrative only — values omitted intentionally
compressed = zlib_compress(b"minimal")
header = {
"declared_uncompressed_size": VERY_LARGE,
"actual_payload_size": len(compressed)
}
send(build_message(header, compressed))MongoDB allocates a large buffer… …but only part of it is filled.
MongoDB processes and returns data that includes uninitialized heap memory.
Attackers repeat this process, extracting memory fragments and scanning for patterns:
mongodb://
SCRAM-SHA-256
AWS_ACCESS_KEY_ID
BEGIN PRIVATE KEY
Authorization:This is passive memory scraping, not noisy exploitation.
Leaked memory commonly included:
For organizations running MongoDB in cloud or hybrid environments, this often meant full environment compromise, not just database access.
MongoBleed is notoriously hard to detect.
Typical logs show nothing more than:
connection accepted
compression negotiated
connection closedNo crashes. No authentication failures. No obvious errors.
This is why patching—not detection—is the primary defense.
MongoDB released fixes across all supported branches. Upgrade to the first patched version for your release line.
If you are using MongoDB Atlas, patches were applied automatically.
Disable zlib compression:
net:
compression:
compressors: snappy,zstdOr via startup parameter:
mongod --setParameter networkMessageCompressors=snappy,zstd⚠️ This reduces risk but does not replace patching.
If your MongoDB instance was:
Assume compromise.
Recommended actions:
MongoBleed reinforces several uncomfortable truths:
Most importantly:
Encryption, authentication, and Zero Trust controls do not help if the service leaks secrets before they are enforced.
MongoBleed was not a sophisticated exploit. It was worse: a simple, reliable, and silent failure.
For CISOs and engineering leaders, the takeaway is clear:
If your organization runs databases as critical infrastructure—and most do—MongoBleed is a case study worth remembering.
Love it? Share this article: