Drubix

Features

Everything you need to stay ahead of Drupal risk

Not a generic scanner with a Drupal label stuck on it — nine features, each built around how Drupal advisories, modules, and configuration actually work.

01 — Security matching

Every advisory, checked against every site

Drubix polls Drupal.org's security advisory feed continuously and cross-references it against each site's actual installed modules. Once the connector module is installed, this is a confirmed version match — not a guess based on what's publicly exposed.

$ checking 34 modules against 1,842 advisories

HIGHWebform — SA-CONTRIB-2026-014

Installed: 6.2.1 · Fixed: 6.2.3

→ composer require drupal/webform:^6.2.3

02 — Multi-site dashboard

One view for every site you manage

See every site in one place, sorted by what actually needs attention — not fifty separate admin logins to check one at a time. Each site shows its open findings, last scan time, and whether the connector module is reporting confirmed data.

client-a.example.com2 open
client-b.example.comclear
client-c.example.com1 open

03 — Remediation included

Findings come with the fix, not just the alarm

"Module X is vulnerable" is table stakes. Every finding in Drubix includes the exact command to resolve it — a Composer version bump, ready to run — so you spend time fixing things, not researching them.

HIGHWebform — XSS — SA-CONTRIB-2026-014

→ composer require drupal/webform:^6.2.3

04 — Real-time alerts

Hear about it the moment it matters

A weekly PDF nobody reads isn't a monitoring tool. When a new advisory affects a site you manage, Drubix pushes an alert to Slack, email, or a webhook of your choice immediately — filtered by the severity threshold you set, so you're not paged for every low-priority finding.

#client-alerts · Slack
[HIGH] Webform — Cross-site scripting on client-portal.example.com. Fix: composer require drupal/webform:^6.2.3
webhook → your incident tool
[CRITICAL] Drupal core — SA-CORE-2026-003 detected on 3 sites.

05 — White-label reports

Reports your clients actually read

Generate a branded PDF summary for any site, under your agency's name, showing exactly what their retainer is paying for — findings, severity, and what was fixed.

Site Health Report

client-portal.example.com
[HIGH] Webform — SA-CONTRIB-2026-014
Suggested fix: composer require drupal/webform:^6.2.3

06 — Historical trends

See if a site is getting better or worse

A point-in-time scan tells you today's status. Drubix records a daily snapshot of open findings by severity, so you can show a client — or yourself — whether a site's health is actually improving over time, not just what it looks like right now.

Open findings — last 30 days↓ trending down

07 — Cross-site benchmarking

Context a single site's history can't give you

Once enough sites are being monitored, see how any given site's security posture ranks against every other Drupal site on the platform — not just whether it's improved since last month, but how it compares more broadly. Requires a minimum sample size before showing a number, rather than a misleading percentile from a handful of sites.

Top 12%

of monitored Drupal sites for open critical findings

08 — Config drift detection

Catch changes that never got exported to code

Config changed directly on a live site but never exported to your repository is a classic source of "it worked on staging" surprises. The connector module compares active configuration against the last exported config and flags exactly which objects have drifted.

core.extension.yml
- webform_ui: 0
+ webform_ui: 8000
system.site.yml
- page.front: /node
+ page.front: /home

09 — CI/CD integration

Stop a vulnerability before it ships

Gate a deploy pipeline on open findings — fail the build automatically if a known vulnerability is present, before it ever reaches production. Drops straight into GitHub Actions or any CI system that can run a script.

# .github/workflows/monitor-gate.yml

Fetched 1 open finding(s) for site.

[high] Webform — SA-CONTRIB-2026-014

Build gate FAILED: severity ≥ high found.

10 — Attack surface scanning

Catch what should never be public

Checks for a publicly reachable .git/ directory, .env file, or database backup left in the webroot — and audits standard security headers (HSTS, CSP, X-Frame-Options). No connector needed; this runs on every passive scan.

CRITICALPublicly exposed: /.git/config

A readable .git directory can expose your entire commit history.

MODERATEMissing security header: content-security-policy

11 — Permissions & hardening audit

The misconfiguration behind most real Drupal breaches

Flags the anonymous or authenticated role holding a permission dangerous enough to hand over site control — "administer permissions," "execute PHP code" — plus writable settings.php and a missing files .htaccess. No generic scanner can check this; it requires understanding Drupal's role model specifically.

CRITICAL — anonymous role
"administer permissions" granted
MODERATE — hardening
settings.php is writable
sites/default/files/.htaccess missing

12 — Unmaintained module flagging

Risk before there's a CVE to match against

Most contrib modules aren't covered by Drupal.org's security advisory policy at all. Drubix flags known-unmaintained or inherently risky modules — like the deprecated PHP filter — proactively, rather than only reacting once an advisory eventually gets published.

php (PHP filter module)unmaintained
webformactively maintained

13 — Blast-radius incidents

One advisory, fifteen sites — one incident

When an advisory hits many sites in your portfolio at once, Drubix groups it into a single incident instead of forcing you to click through fifteen separate findings one at a time. Only possible because the platform is multi-site-aware — no single-site tool can do this by definition.

SA-CORE-2026-003 2 sites affected
client-portal.example.comcritical
donor-portal.example.comcritical

14 — Mean time to patch

A number you can put in a client report

Computed automatically from data Drubix already has — the average days between a finding being detected and resolved. "We patch in an average of 3.2 days" is a concrete, retainer-justifying claim, not a vague promise.

3.2 days

average time to patch, last 90 days

15 — Known-exploited prioritization

Fix what's actually being attacked

Cross-references matched advisories against CISA's Known Exploited Vulnerabilities catalog — reordering "fix this first" by real-world attacker activity, not just a severity label. A moderate finding that's actively being exploited jumps ahead of a critical one that isn't.

HIGHWebform — SA-CONTRIB-2026-014

⚠ Known exploited in the wild — prioritize this

Ready to see it on your own sites?

Start with a free scan — no credit card, no commitment.