Type something to search...
What is a zero-day vulnerability?

What is a zero-day vulnerability?

A zero-day vulnerability is a security flaw in software that is unknown to the vendor, or known but not yet fixed, so there's no patch available when attackers start exploiting it. The name refers to the developers having had "zero days" to fix the problem. You can't patch a zero-day before a patch exists, but you can greatly reduce the damage one can do by limiting your attack surface, adding layered defenses like a web application firewall, applying least privilege, monitoring for suspicious activity, and patching fast once a fix is released.

Zero-days get a lot of media attention, and they are genuinely dangerous. But for most website owners, the far bigger risk is the opposite problem: known vulnerabilities that already have a patch but haven't been applied. This article explains what zero-days are, how they're discovered and used, the related terms you'll hear, and the practical steps that protect your website both during the zero-day window and after a fix arrives.

Zero-Day Terms Explained

You'll often hear several related terms used together:

  • Zero-day vulnerability: The flaw itself, unknown to the vendor or unpatched.
  • Zero-day exploit: The code or technique used to take advantage of the flaw.
  • Zero-day attack: The actual use of the exploit against a target.
  • N-day (or one-day) vulnerability: A flaw that has been publicly disclosed, usually with a patch available, but which many systems haven't yet been updated to fix.

That last term is important. Once a vulnerability is disclosed and patched, it's no longer technically a zero-day, but attackers still exploit it heavily because so many sites remain unpatched. For websites, N-day attacks against outdated plugins, themes, and server software are far more common than true zero-days.

The Lifecycle of a Zero-Day

Every vulnerability follows a rough timeline:

  1. Introduction: A developer writes code containing a flaw, usually by accident.

  2. Discovery: Someone finds the flaw. It might be a security researcher, the vendor's own team, a bug bounty hunter, or an attacker.

  3. Exploitation or disclosure: If an attacker finds it first, they may exploit it quietly, sell it, or share it. If a researcher finds it, they typically report it privately to the vendor through responsible (coordinated) disclosure.

  4. Vendor response: The vendor investigates and develops a fix. Meanwhile, the vulnerability may already be exploited in the wild.

  5. Patch release and advisory: The vendor publishes the fix, often with a security advisory. Vulnerability databases record it, sometimes with a CVE identifier.

  6. Patch adoption: Site owners and administrators apply the update. This stage can take days, months, or never happen at all.

The window between discovery by attackers and patch adoption is when you're most at risk. The window after the patch release is when attacks usually spike, because advisories and patch comparisons make it easier for attackers to build working exploits.

Why Zero-Days Are Dangerous

Zero-days are especially dangerous for several reasons:

  • No patch exists: Updating can't help until the vendor releases a fix.
  • Signature-based tools may miss them: Antivirus, malware scanners, and WAF rules that rely on known patterns may not recognize a brand-new exploit.
  • They can be stealthy: Attackers may exploit a zero-day quietly for some time before anyone notices.
  • They can affect huge numbers of sites: A zero-day in a popular plugin, library, or server component can put a large share of the web at risk at once.

Who Uses Zero-Day Exploits?

Different actors use zero-days in different ways:

  • Nation-state groups: Often target high-value organizations and keep exploits secret for targeted espionage.
  • Criminal groups: May use zero-days for ransomware, data theft, or large-scale automated campaigns.
  • Exploit brokers: Buy and sell vulnerabilities, sometimes for large sums, especially for widely used platforms.
  • Automated bot operators: Rapidly weaponize newly disclosed flaws, particularly in popular CMS plugins, and scan the internet for vulnerable sites.

For a typical website, the last group is the most relevant. You're unlikely to be targeted by a nation-state, but you're very likely to be scanned by bots within hours or days of a popular plugin vulnerability being published.

Zero-Days and Websites

For websites, zero-days can appear anywhere in the stack:

  • CMS core: Such as WordPress, Drupal, or Joomla. Core zero-days are relatively rare because the code is heavily reviewed.
  • Plugins and themes: The most common location for website vulnerabilities, due to the sheer volume of third-party code with varying quality.
  • Libraries and dependencies: JavaScript packages, PHP libraries, and frameworks used by your site or its plugins.
  • Server software: The web server, PHP, database server, OpenSSH, or the operating system itself.
  • Hosting control panels and third-party services: Panels, CDNs, and SaaS tools integrated with your site.

How to Protect Your Website from Zero-Days

You can't fix a flaw you don't know about, but you can make it much harder to exploit and much less damaging if it is.

1. Reduce Your Attack Surface

Every piece of software you run is a potential source of vulnerabilities. Fewer components mean fewer chances for a zero-day to affect you.

  • Delete plugins and themes you don't use, rather than just deactivating them. In WordPress, go to Plugins > Installed Plugins and Appearance > Themes.
  • Remove old staging sites, test installs, and forgotten subdomains.
  • Disable features you don't use, such as XML-RPC.
  • Close unused ports on servers you manage.

You can list your installed plugins and their versions quickly with WP-CLI:

wp plugin list --fields=name,status,version,update

2. Choose Well-Maintained Software

Pick plugins and themes that are actively maintained, widely used, and from reputable developers. Well-maintained projects fix vulnerabilities faster, often within days of a report. Check the "Last updated" date and support forum activity on WordPress.org before installing.

3. Use a Web Application Firewall

A WAF can block exploit attempts even without a specific rule for a new vulnerability, because many exploits share common patterns, such as SQL injection payloads, suspicious file uploads, or path traversal. Once a zero-day becomes known, WAF vendors often release virtual patches that block exploitation before the official fix arrives or before you've had time to update. Cloud WAFs like Cloudflare and Sucuri, and plugin WAFs like Wordfence, provide this.

4. Apply Least Privilege

Limit what an attacker can do if they get in:

  • Give users only the roles they need; keep Administrator accounts to a minimum.
  • Use a separate database user for each site with privileges only on its own database.
  • Run PHP-FPM pools under separate system users for separate sites.
  • Set correct file permissions (typically 644 for files and 755 for directories) and make wp-config.php more restrictive.

5. Harden Your Configuration

Hardening measures often break exploit chains, even for unknown flaws. For example, blocking PHP execution in the WordPress uploads folder stops many attacks that rely on uploading a malicious PHP file. On Apache, add a .htaccess file inside wp-content/uploads/:

<FilesMatch "\.(php|phtml|php[0-9]|phar)$">
    Require all denied
</FilesMatch>

On Nginx, add this inside your server block, before your main PHP location:

location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ {
    deny all;
}

Disabling the dashboard file editor also removes one easy way to plant code. In wp-config.php, above "That's all, stop editing!":

define( 'DISALLOW_FILE_EDIT', true );

6. Monitor for Suspicious Activity

Because zero-day exploits may evade signature-based tools, behaviour monitoring matters:

  • File integrity monitoring: Alerts you when core files change or new PHP files appear. Wordfence and similar plugins offer this, and WP-CLI can verify core files with wp core verify-checksums.
  • Activity logs: Plugins like WP Activity Log or Simple History record logins, new users, and settings changes.
  • Server and WAF logs: Watch for unusual request patterns hitting specific plugin paths.
  • Uptime and content monitoring: Detect defacement or unexpected redirects.

For example, you can quickly check for recently modified PHP files on a server:

find /var/www/example.com -name "*.php" -mtime -2 -type f

7. Patch Quickly When Fixes Arrive

When a zero-day becomes public, the clock starts ticking. Bots often begin scanning for vulnerable sites within hours.

  • Subscribe to security alerts from your security plugin or services like Wordfence Intelligence, Patchstack, or WPScan.
  • Enable automatic updates for plugins you trust, in Plugins > Installed Plugins using the "Enable auto-updates" link.
  • WordPress core applies minor security releases automatically by default. Leave that enabled.
  • Keep PHP and server packages updated. On Ubuntu and Debian, the unattended-upgrades package can apply security updates automatically.

8. Keep Reliable, Tested Backups

If a zero-day leads to a compromise, clean backups let you recover quickly. Store them off-site, keep multiple versions (an infection might go unnoticed for a while), and test restores regularly.

9. Isolate Sites and Services

Don't host many unrelated sites under one account with shared credentials. If one site is compromised through a zero-day, isolation prevents it from spreading. Use separate hosting accounts, containers, or at least separate system users and databases.

What to Do When a Zero-Day Affects Your Site

If you learn that software you use has an actively exploited zero-day:

  1. Check if you're affected: Confirm the plugin, theme, or component and version.
  2. Apply the patch immediately if one exists.
  3. If no patch exists, deactivate and remove the affected plugin temporarily, or apply the mitigations recommended in the advisory, such as disabling a feature or blocking a specific endpoint.
  4. Enable WAF protection and make sure virtual patching rules are active.
  5. Look for signs of compromise: New admin users, unfamiliar files, modified core files, or unexpected scheduled tasks.
  6. Rotate credentials if you suspect a breach, including admin passwords, database passwords, and the security keys in wp-config.php.
  7. Restore from a clean backup if you find evidence of compromise, then patch before bringing the site back online.

FAQ: Zero-Day Vulnerabilities

The term refers to the vendor having had zero days to fix the flaw by the time it's exploited or disclosed. In other words, there's no patch available yet.

Sometimes. Tools that rely only on known signatures may miss a brand-new exploit, but behaviour-based rules, generic WAF protections, and hardening often block or limit zero-day attacks even without a specific signature.

True zero-days in WordPress core are rare. Vulnerabilities in third-party plugins and themes are much more common, and many attacks target already-patched flaws on sites that haven't updated.

A zero-day has no patch available when it's exploited. An N-day vulnerability has been disclosed and usually patched, but is still exploited on systems that haven't been updated.

As soon as possible, ideally within a day or two for critical issues. Attackers often begin scanning for vulnerable sites within hours of a public disclosure.

Partly. Reducing your attack surface, using a WAF with virtual patching, applying least privilege, hardening your configuration, and monitoring all reduce the chance of successful exploitation before a fix is available.


Conclusion

A zero-day vulnerability is a flaw that attackers can exploit before the vendor has released a fix. That makes it one of the hardest threats to defend against directly, because the usual advice to "just update" doesn't apply until a patch exists. The good news is that true zero-days are relatively rare for most websites, and the same layered defenses that protect you against everything else also blunt zero-day attacks.

Keep your software footprint small and well maintained, put a WAF in front of your site, apply least privilege, harden your configuration, and monitor for unusual changes. Then, when a fix is released, patch quickly, because that's when attacks tend to surge. Combine those habits with tested off-site backups, and even a zero-day becomes a recoverable incident rather than a disaster.

Tags :
Share :

Related Posts

What are the best WordPress security plugins?

What are the best WordPress security plugins?

The best WordPress security plugins for most sites are Wordfence, Sucuri Security, Solid Security, MalCare, All-In-One Security (AIOS), Patchstack, a

Dive Deeper
What are the most common website security threats?

What are the most common website security threats?

The most common website security threats are vulnerable or outdated software, weak and stolen passwords, malware infections, injection attacks like S

Dive Deeper
How does GDPR affect website security?

How does GDPR affect website security?

GDPR affects website security by turning it from a good habit into a legal obligation. If your website collects personal data from people in the EU (

Dive Deeper