Safeguard Blog
Articles about Safeguard Blog
Soft-Deleted Records Are Still Reachable
A soft delete sets a flag and leaves the row in place, which means every single query, export, search index, and cache that touches that table has to remember to exclude it. One that does not is a path where a user's deletion was never actually honored.
Silent Configuration Drift Between Environments
A feature flag left on in staging and off in production, an environment variable raised during an incident and never reverted, a database-backed setting edited by hand. None of these show up in a code diff, and each one is a way two environments that are supposed to be identical quietly stop being identical.
A Link Is Fetched Before Anyone Clicks It
Paste a URL into a chat message and a server fetches it automatically to build a preview card, before anyone reads the message or clicks anything. That fetch consumes a single-use link or a time-limited token just as effectively as the intended recipient would have.
Your Access Review Checks One Node in a Graph
A user's permission listing shows no administrative access. By every direct check, they are ordinary. They can still become an administrator through a permission that looks unrelated, was granted for an unrelated reason, and lets them modify something that leads there.
A Revocation Is Not Effective Until Every Cache Agrees
You remove a vendor's IP from an allowlist and the firewall updates immediately. It does not update every client that already resolved the hostname and cached the answer, some of which will keep connecting to the old address for as long as their TTL says they may.
Just-in-Time SSO Provisioning: Group Claims and Role Drift
A new employee signs in with SSO for the first time, and your application creates an account and assigns a role based on group claims from the identity provider, with no human in the loop to notice if the claim maps to more access than intended.
Multipart Parsing Ambiguity as a Validation Bypass
A duplicate field name, an unusual boundary, a malformed header. Two standards-compliant parsers can resolve the same ambiguous bytes differently, and if a validator reads one interpretation while your application reads another, validation passed something it never actually checked.
Nobody Chose to Fail Open. The Catch Block Did
Why fail-open error handling in permission checks passes review and never appears in testing, the four common places it hides, and what a properly fail-closed check looks like with a deliberate, scoped exception for low-consequence cases.
Polyglot File Uploads and MIME Sniffing to Stored XSS
A user's file passes every image validation check your upload handler runs. It is also, independently and simultaneously, a valid HTML document, and browser MIME sniffing can choose to render that instead when your response headers do not stop it.
Why a Shared CI/CD Deploy Credential Is Your Real Attack Surface
How one deployment credential accumulates authority over every service that references it, why the weakest pipeline determines the strongest one’s exposure, and a migration path that scopes production and your highest-consequence service first.
OAuth Account Linking and Unverified Email Takeover
Continue with Google links to the matching existing account by email address. That is correct when the identity provider genuinely verified the email. Some providers make verification optional, and not every system checks which claim it is reading.
How CI/CD Secret Masking Gets Silently Bypassed
Encode it, uppercase it, split it across two log lines, and masking has nothing to match against. This is not a bug in any platform. It is the only mechanism possible without semantic analysis of every command a pipeline runs.
Replication Lag as an Authorization Vulnerability
Why routing reads to replicas can serve stale permission state during revocation, session invalidation and tenant changes, why this never appears in testing, and the denylist pattern that decouples the one check that must never be stale.
Search Your Wiki for the Word Password Right Now
A database credential pasted into a setup guide, an API key in a runbook written during an outage, a shared vendor login on a page titled useful links. Nobody put it there to be careless, and it has been searchable ever since.
Detecting Rubber-Stamp Code Review Without Blaming Anyone
Branch protection requires review before merge. Your audit evidence shows one on every pull request for a year. It does not show whether any of them involved a person reading the diff, and for a meaningful share, they did not.
Implementing Idempotency Keys Correctly
Why check-then-process idempotency fails under concurrent retries, atomic claims with a database constraint, scoping keys to the request body, expiry tradeoffs, and the client-side bug that regenerates the key on every retry.
Authorization for AI Chatbot Tool Calls
Why instructing a model to only act on the current user is a hint and not a control, passing real verified identity into every tool call, tiering actions by consequence, and treating pasted content as a source of hidden instructions.
PostMessage Has No Default Access Control
Your embeddable widget talks to the page hosting it across origins. Anything that can get a reference to that window can send it a message, and unless the listener checks who sent it, the widget will act on a message from anywhere.
Every SaaS Tool Nobody Approved Still Has Access
Someone signed up with a company card, connected it with broad OAuth scopes, used it for a quarter, and stopped. The subscription lapsed. The integration did not. Adopting a tool costs nothing; removing one requires someone to remember it exists.
Securing Persistent Memory in AI Assistant Features
Prompt injection in a single turn affects one response, then the next request starts clean. A persistent memory feature breaks that boundary by design, so a single successful injection becomes durable, recalled and trusted in every future session.
Why Cyber Insurance Claims Get Denied Over the Application
Why the insurance application is evidence, not a formality, the common mismatches between claimed and actual controls, and how to answer it so a partial rollout does not void coverage during a real incident.
Feature Flag Targeting Rules Leaking to the Client
To evaluate flags locally, the client-side SDK needs the targeting rules: which accounts get the enterprise preview, the pricing tier conditions, the churn-risk exclusions. Open the network panel and anyone can read all of it.
Removing a Secret From Git History the Right Way
A scanner flags a credential from fourteen months ago, removed in the very next commit. The current file is clean, which feels like the problem is solved. The blob holding that value is still reachable from the earlier commit.
Secrets in Terraform State: Where They Leak and What to Do
The database password, the generated private key, the API token an output exposed. You did not put them there directly. Terraform did, because it needs the full attributes of everything it manages to plan the next change.
The Kubernetes Token Nobody Asked For
Every pod gets a token that authenticates to the API server, whether the application inside it ever calls the API or not. It sits there anyway, readable by anything that can read a file in the container, because the default is on.
Phishing-Resistant MFA: Origin Binding vs Relayable Codes
A code read off a screen and typed into a page can be typed into the wrong page. A key bound to an origin cannot produce anything usable for a site that is not yours. That is the whole distinction.
Securing Staging and Preview Deployment Environments
Less hardening, unfinished code, no monitoring, real credentials, and often production's network reachability. An attacker choosing between your two environments will frequently prefer this one.
How to Hire Your First Security Engineer
Builder, breaker or programme person, writing a description for one real person, four things worth testing, the signals to weight, and deciding what they will not be responsible for before you hire.
Handling the Legacy System Nobody Will Change
It works, it matters, the person who built it has left, and everyone has agreed without discussing it that touching it is riskier than leaving it. That agreement gets more expensive every month.
Securing and Monitoring Scheduled Jobs
They run at three in the morning with broad credentials, unattended, and failure produces nothing because the output was always invisible. A retention job that silently stops means you are keeping data you promised to delete.
Which Timing Differences Actually Matter
Why expensive work in only one branch leaks existence, verifying against a dummy hash, minimum duration floors instead of random delays, the honest case for constant-time comparison, and how to measure it.
What Your Identifiers Tell the World
What a sequential id reveals about volume and existence, separating the internal key from an immutable prefixed public identifier, cursor pagination, where identifiers end up, and the migration step people skip.
Excessive Data Exposure in API Responses
Why model serialisation makes the schema the contract, where the leaks are (nested objects, lists, internal flags, permission objects), explicit response shapes per audience, and the mobile consequence.
What Belongs in a Product Notification Email
Email is the one channel where you hand data to a third party as a matter of routine and nobody counts it as a data flow. The inbox is not deleted, is forwarded, is searchable by whoever holds it, and is scanned.
Referrer Policy, noopener and Links in User Content
The address of the page they were on, and sometimes a handle that lets the destination navigate your tab. Both are defaults, both are one attribute away from fixed, and your URLs contain identifiers and sometimes capabilities.
Host Header Injection and Password Reset Poisoning
To build a reset link your app needs to know its own hostname, and the convenient place to find it is the Host header. That header is supplied by the client, so a stranger decides what goes in the email you send.
Safe Auto-Merge for Dependency Updates
Patch quickly, because exploitation begins within days. Review what you take from third parties, because a malicious version of a package you trust is the most effective supply chain attack. Auto-merge picks one and abandons the other.
Securing Internal Admin and Support Tooling
Why admin panels bypass the authorisation layer, separating aggregate views from reading data from acting as a customer, why XSS is worse in internal tools, and the four things worth being strict about.
An Alert Nobody Acts On Is Not a Control
The three things an alert needs before it fires, sorting noise by cause, tuning by consequence rather than volume, three destinations rather than one, and dismissal rate as the leading indicator.
Domain Verification, Auto-Join and Account Capture in SaaS
Proving control rather than receipt, re-verifying because domains change hands, separating auto-join from enforcement from capture, shared domains, subdomain cascade, and matching the check to the consequence.
The Customer Left. Their Data Did Not
Billing stops and everything else stays: their records in your database, their files in storage, their keys still valid, their users still able to log in. Onboarding is a designed process. Offboarding carries the obligations.
You Tested a Different Artefact Than the One You Shipped
Tests pass against a build with debug assertions, development dependencies and verbose errors. You then ship something compiled differently, with a different dependency set, that behaves differently when something goes wrong.
Securing Self-Hosted CI Runners and Fork Pull Requests
Why persistence lets one job reach the next, the elevated-trigger pattern that runs fork code with your secrets, workflow input injection, network segmentation for runners, and short-lived per-job credentials.
Security in Engineering Onboarding Without Slowing It Down
Granting role bundles rather than answering blockers, starting narrow, the password manager and hardware key on day one, the four things worth teaching, and why the onboarding record is what makes offboarding work.
Narrowing Production Access Without Blocking Engineers
It was obviously right at eight people and nothing has forced a decision since. At some point the number who can read every customer's data stops being one you would say out loud, and nothing breaks to tell you.
Which Changes Should Trigger a Security Review
Asking developers to involve security when it seems relevant fails in both directions, because relevance requires exactly the expertise the person does not have. Give them observable properties instead.
Your Free Tier Is Compute You Hand to Strangers
What abusers actually want, why behaviour after signup beats signals at signup, designing the tier so abuse is not worth it, progressive friction, and the two numbers that show whether it is working.
Old API Versions as a Security Liability
Why versions accumulate, how fixes fail to propagate across parallel implementations, logging by version and client to find real callers, the brownout step that surfaces the rest, and the mobile case.
Classify the Systems, Not the Documents
Why labelling documents fails and classifying systems works, three tiers rather than five, making each tier change what happens, wiring it to access reviews and vendor depth, and what auditors sample.
What Encryption at Rest Does and Does Not Protect
It is on every security page, it is true, and it covers someone taking the physical disk. Every other way your data gets read happens through a path where it is already decrypted, because the encryption is transparent by design.
A Deep Link Is an Unauthenticated Entry Point Into Your App
Why a custom URL scheme is a request rather than a claim, verified App and Universal Links and how they fail open, treating link parameters as untrusted, and why the server is where authorisation belongs.
Why Postmortem Action Items Do Not Get Completed
Items created at maximum motivation and executed at minimum, classifying by prevent, detect and mitigate, deadlines proportional to severity, honest closure states, and why capacity beats discipline.
Securing OAuth App Integrations on Your Platform
Consent screens in the user’s terms, scope design as blast radius, refresh tokens as the real grant, the administrator management view enterprises require, and responding when a third-party app is compromised.
Design the API Key So It Can Be Found When It Leaks
Why a recognisable prefix enables secret scanning partnerships, checksums for cheap rejection, storing the hash with an indexed lookup, last-used as the field that enables review, and rotation without downtime.
Anyone With the Link Is Not an Access Control
It is the absence of one, with a long identifier standing in for a decision about who should see the thing. Products ship it because customers need it, and then nobody can list what has been shared.
Handling a Customer Penetration Test of Your Product
Usually you find out afterwards, when a report with eleven findings arrives asking for remediation dates. It goes badly more often than it should, because nobody decided in advance who owns it or what happens when a finding is wrong.
Localhost Is Not as Private as It Feels
Your machine is running more servers than you think, most with no authentication because localhost feels private. Any page you visit can send requests to them, on the machine holding your cloud credentials and SSH keys.
Finding Test, Demo and Seed Accounts in Production
The demo tenant from the launch, the test user from a 2023 bug, the seed administrator that shipped with the first deployment. None appear on an access review, because reviews enumerate employees and these live in the product's own user table.
WebSocket Authorisation, Origin Checks and Revocation
The user is removed from the project, their role is downgraded, their session is revoked. The socket is still open and still receiving, because nothing re-evaluates a connection that was authorised in the past.
GraphQL Authorization: Resolver-Level Checks and Query Cost
In REST an operation has one endpoint, so the check has one place to live. In a graph a field can be reached by many paths, and a check on the top-level query does not protect the same data reached as a nested field.
Access Control and Tenancy in Search Indices
Why filtering by convention fails, stale permissions and undeleted documents, aggregations as a disclosure channel, document-level security, and a one-minute cross-tenant search test.
CSV Formula Injection in Product Exports
Why input validation and HTML escaping do not apply, the cross-tenant case that matters, prefixing at write time, why quoting is not enough, and why a typed xlsx is the clean answer.
Securing Reply-by-Email and Inbound Mail Processing
Why domain authentication is not sender identity, per-conversation tokens in the reply address, attachments as unauthenticated uploads, rendering hostile HTML mail, and the autoresponder loops that cause real incidents.
SSRF and File Disclosure in PDF and Screenshot Services
Behind the invoice feature is a headless browser running inside your network, rendering markup a user influenced. Everything a browser does it will do: fetch URLs, load images, follow redirects. The only question is where it can reach.
Time Is a Security Dependency Nobody Declares
Where skew breaks token validation, TOTP, TLS and signature freshness, what to inventory for expiry, monitoring offset rather than daemon status, and why widening a tolerance quietly weakens the control.
Securing Health, Metrics and Management Endpoints
What health and metrics endpoints give away, why route enumeration through a metrics scrape is free reconnaissance, splitting the management port, shallow versus deep health checks, and a probe list to run.
Database Privilege Separation for Application Users
A SQL injection is limited by what the connected user may do, and so is a compromised application process. In most deployments the answer is everything, because that is what the framework quickstart produced.
Deleting a User Is Harder Than You Told the Customer
Why soft delete is not deletion, enumerating the copies, the honest backup position and the suppression list that makes it real, what you must retain, and building deletion as a pipeline rather than a script.
An Audit Log You Can Actually Answer Questions With
Why application logs cannot serve as audit logs, the events and fields worth recording, recording the real actor behind impersonation, append-only storage outside the same blast radius, and a timed answerability test.
Securing B2B Invitation and Auto-Join Flows
Someone mistypes a colleague's address and a stranger is in that company's tenant, because the invitation worked exactly as designed. It is built early, for frictionlessness, by whoever shipped the collaboration feature.
Account Recovery Is the Weakest Authentication You Have
You require strong passwords and enforce MFA, then built a flow that lets someone with inbox access bypass all of it. Recovery exists to let in someone who cannot satisfy the normal requirements, so every control above it is capped by how well it is built.
Safe Config Parsing: YAML, Polymorphic JSON and Trust Boundaries
Configuration feels inert because it looks like data. Several formats can execute code and several loaders will by default, which makes parsing a security decision the moment the file comes from anywhere but your own repository.
Monitoring and Security Agents as a Supply Chain Risk
Four agents on every production host, each running as root or with kernel privileges, each auto-updating from its vendor, each sending data outward. Your application dependencies are pinned and scanned. These are neither.
When the Cache Key Leaks One User's Page to Another
A personalised response cached under a key that does not include the thing that made it personal. One of the few bugs that discloses one customer's data to another with no attacker involved, and it arrives as a confused support ticket.
Security Incident Severity Classification for Small Teams
A four-level scale assignable in five minutes, why declaring early and downgrading freely beats investigating alone, the one role worth formalising, and the four decisions to make deliberately rather than by default.
A Vendor Just Told You They Were Breached
The notification is vague, late, and does not say whether you are affected. It starts several clocks, and one of them may be a 72-hour regulatory deadline that runs from when you became aware, not when their investigation finishes.
Secure-by-Default Service Templates for Small Security Teams
One security engineer cannot review every service a hundred developers write. What works is deciding things once, in a scaffold, so every service created afterwards starts with those decisions already made.
Post-Acquisition Security Integration: The First 90 Days
Most acquisition security effort happens before close and produces a report. Your exposure actually changes in the ninety days afterwards, when the pressure is to connect everything quickly and the security questions are marked answered.
Autoscaling Turned the Attack Into an Invoice
Every request was served, no alerts fired, the dashboards stayed green. The properties that made your infrastructure resilient are what made the attack work, and the only symptom arrives weeks later on a bill.
Feature Flag Debt and the Security Controls It Hides
Added during an incident to skip a validation or bypass a limit, intended to be reverted that afternoon, and nothing reminds anyone. It lives in a system with weaker access control and no change record than your permission model.
SPF and DMARC for Parked and Non-Sending Domains
The four records a domain that never sends mail needs, why sp=reject matters for subdomains, finding forgotten domains through renewal charges and certificate transparency, and free detection via DMARC reports.
Watch Your Own Session Replay and Read Every Field
What gets captured beyond input fields, why masking fails safe only when inverted, the GDPR and subprocessor position, and the twenty-minute test of recording a sensitive flow and watching it back.
Reviewing Database Migrations for Security Impact
It runs in production with the highest privileges in your system, usually unattended, and gets reviewed as an implementation detail at the bottom of the diff. It can drop a constraint that was the only thing enforcing a security property.
Presigned URL Security for Uploads and Downloads
Anyone holding the string can do what it permits, with no identity check, until it expires. Every mistake is a variation of one thing: handing out more capability than intended, for longer than intended.
Five Ways a Webhook Receiver Goes Wrong
It is a public, unauthenticated endpoint that performs privileged actions on a JSON body from the internet. Everyone knows this, and most implementations still get one of five things wrong in ways that pass every test.
A Lockfile Is Not a Control, the Install Command Is
You pinned every dependency with an integrity hash and committed the file. None of that means the artifact you shipped contains those versions, because several install commands are allowed to resolve differently and rewrite the lockfile.
Securing Bulk Export Features Against Data Exfiltration
Five questions about your export feature, what is actually in the generated file, tenant scoping in a separately written query, expiring download links, and alerting on volume rather than blocking it.
Your Queue Consumer Is an Endpoint Nobody Reviewed
Your API validates every request and authenticates every caller. Behind it a worker reads messages and acts on them with none of those checks, because internal is trusted. That worker takes untrusted input and performs privileged actions.
Mobile SDK Supply Chain Risk and the Patch Adoption Curve
Why mobile remediation is permanently incomplete, what bundled SDKs can reach inside your process, and the three mechanisms that must exist before an advisory lands: kill switch, forced upgrade, server-side enforcement.
Tag Manager Security: CSP, SRI and Payment Page Isolation
Why approving a third-party tag only tells you what it did that day, why this path is where card skimming happens, the controls that fit, and what PCI DSS 4.0 requirements 6.4.3 and 11.6.1 now demand.
How to Actually Read a Vendor's SOC 2 Report
You skim the front, see an unqualified opinion, approve the vendor. The value is in four sections most reviewers never reach, and one of them lists the controls you are required to perform for the vendor's controls to work.
Write the Runbook for a Tired Stranger, Not for Yourself
Most runbooks are written by the person who least needs them and read by someone who has never seen the system, at night, afraid of making it worse. That mismatch explains nearly every runbook failure.
Mapping Pull Requests to SOC 2 Change Management
An auditor asks for change management evidence and the instinct is to build a change request form nobody will use. You already have the control, and it produces better evidence because it is generated by the work rather than alongside it.
Your ChatOps Bot Is an Admin API Nobody Reviewed
It deploys, restarts, queries production and rotates keys, and the authorization check is whether the person is in the channel. It became powerful one useful command at a time, and none of them got the review a new admin API would have.
Assigning Asset Ownership That Stays Accurate
The DNS record pointing at a dead vendor, the service account nobody can justify, the repository failing every scan. Each has a fix that takes an afternoon, and each waits a year because finding an owner has no owner either.
The Contractor Offboarding Nobody Ever Did
Every offboarding process is triggered by a termination event in a directory. A contractor's engagement ending produces an invoice, not a directory change, so nothing downstream fires and the account stays live.
Your API Inventory Is Smaller Than Your API
The spec says one number, the gateway serves a larger one, and the difference is your unprotected surface: undecommissioned v1 routes, framework-generated handlers, and the debug endpoint added during an incident.
How to Handle an Inbound Vulnerability Report
What happens in the next twenty-four hours decides whether this becomes a fixed bug and a useful relationship, or a public disclosure with a thread about how badly you handled it. Most companies get it wrong in the first reply.
Why SSO Deactivation Does Not Fully Revoke Access
SSO centralises authentication. It does not end existing sessions, revoke tokens issued through other paths, or touch the tools that were never federated. Deprovisioning is a credential problem, and credentials outlive identities by design.
Near-Miss Reporting for Security Teams
A credential was public for nine minutes and nobody used it. No incident, no postmortem, nothing changed. Your incident history is a biased sample containing only the times luck ran out.
The Notebook Nobody Reviewed Is Running on a Schedule
It pulls customer records, holds a password in cell four, installs packages at runtime, and has run nightly for eighteen months. The format hides both the state and the data, and nothing gated the moment it became infrastructure.
Keeping a Subprocessor List Accurate Under a DPA
What counts as a subprocessor, why the list drifts structurally, the notice and flow-down obligations you are breaching, how to reconcile against finance and egress logs, and the AI provider question.
How to Write a Security Finding That Gets Remediated
The six parts of an actionable finding, what to leave out, how to handle an engineer who says it is not exploitable, and why a queue you cannot write well is a queue that is too long.
How to Decommission a Service Without Leaving Holes
Remove DNS before cancelling hosting, revoke credentials before deleting infrastructure, and the full checklist including backups, webhook registrations, CI secrets and audit scope. Plus how to verify it.
How to Review a Dependency Before Adding It
Adding a dependency takes ten seconds and commits you to trusting a stranger's code on your build machines for as long as the project lives. Six checks, the signals that should stop you, and what this deliberately does not defend against.
The Subdomain You Forgot Is Someone Else's Now
A CNAME outlives the vendor account it pointed at, the platform frees the hostname, and anyone can claim it. The damage is rarely the defaced page: it is parent-domain cookies, OAuth redirects and a CSP that trusts subdomains.
A Tag Is Not a Version
You deployed myapp:1.4.2 in March and myapp:1.4.2 in September. Those are not necessarily the same image. Almost every tag you rely on is a mutable pointer that someone else can move without telling you.
Configuring an Internal Package Registry as a Security Control
Most companies run one and treat it as a cache. It is the one place in the build that can refuse a package before an install script executes, which is the only point where prevention is still possible.
Permission Models Are Not Designed, They Accumulate
RBAC vs ABAC vs ReBAC, why tenancy must be enforced separately from roles, naming permissions after operations, centralising the decision, and the five places authorization bugs actually cluster.
Your Quarterly Access Review Revoked Nothing
Show last-used dates, review exceptions rather than the population, make revocation the default, and route technical entitlements to system owners. Why service accounts are the real gap, and why revocation rate is the metric.
What to Do With a Critical Vulnerability That Has No Fix
Every remediation process assumes a patch exists. When the maintainer is gone and the package sits three levels deep in a tree you do not control, you need a different workflow: narrow the exposure, then decide, document, control and expire.
A Bare 400 Is Not a Security Posture
What a useful error contains, the line between describing the caller’s input and revealing system state, 401 vs 403, 400 vs 422, and why client fallbacks hide bad errors from the team that could fix them.
What Should Never Reach Your Logs, and Why Redaction Fails
Nobody writes log.info(password). The leaks come from logging whole request bodies, exception objects, header maps and serialised domain objects, into a store replicated everywhere and retained for a year.
A Clean Scan Usually Means the Scanner Did Not Look
Analysed your code and found nothing, or failed to analyse your code and therefore found nothing. Most tools report both as success. Seven reasons coverage collapses, and the canary dependency that proves a scan still works.
Your Staging Environment Has Production Data In It
Nobody decides to put customer data in staging. It arrives through a restore for realistic testing, a debugging export, an analytics pipeline, a laptop dump. The copies inherit none of production's controls and never expire.
When Automated Agents Share One Deploy Lock
Why agent retry loops turn a working lock into continuous redeployment, the four conventions that fix it, how to handle a stale lock without breaking a live deploy, and the two aggregate metrics that detect it.
Why Your Rate Limiter Is Not Limiting Anything
A forgeable key, a per-instance counter, a fail-open catch block and a fixed window all produce a limiter that runs, logs, appears on the architecture diagram, and blocks nothing. None shows up in the usual test.
Customer Communication During a Supply Chain Compromise
The first message has to go out before the investigation finishes. What to say at each stage, the order that establishes scope, and why historical lockfiles turn a week of archaeology into a query.
Which Artifact Should Your SBOM Be Generated From?
An SBOM is a statement about a specific artifact. Generate it from the repository and you have an accurate document about something nobody runs, missing the base image where most of your published CVEs live.
Nullable tenant_id: Why NULL as Global Fails Toward Disclosure
A nullable tenant_id where NULL means global makes omission the unsafe state, and SQL NULL semantics mean the mistake never raises an error. The admin view looks full and correct while tenant-scoped rows are simply absent.
Your CI Job Is Not Hung, It Is Slower Than Your Timeout
A timeout kills a process and loses its buffered output, so a suite that needed eleven minutes looks exactly like a deadlock. How to tell them apart, the defaults that catch people, and why a killed scan must never count as a pass.
Migrating Suppressions and Triage History Between Scanners
Findings regenerate. Suppressions, risk acceptances, severity overrides and exclusion scope do not. The composite key that matches most of them, what should not carry over, and the sequence that keeps the review queue before cutover.
The Dockerfile in Your Repository Is Probably Not What Builds
An urgent fix gets made on the build host, the backport never happens, and the repository copy becomes a historical document. Absent files prompt questions; stale ones answer them wrongly.
Resources | Safeguard
Every dependency scanner is a program that looks things up. The six things it needs a network for, the four operating models people all call air-gapped, and the questions to ask before a proof of concept.
Evaluate a Security Scanner in Three Weeks, Not Six Months
A standard bake-off measures detection on code both tools have seen, weights forty rows equally, and tests week one of a week-fifty problem. Six questions with real variance, and how to run them against your incumbent too.
An Egress Allowlist You Can Enforce, Not Just Record
A proxy the workload can decline to use is a log, not a control. Why environment-variable proxies and host firewall rules both fail for untrusted code, and the internal-network plus gateway-container shape that does not.
How to Write a Penetration Test Summary for Customers
A customer asks for your pen test report. Sending the full one is live attack documentation with your open findings in it. What the summary contains, what stays out, and how to handle the awkward cases.
Where Security Gates Belong in a CI/CD Pipeline
Most badly behaved security gates are correctly configured checks in the wrong position. The four places a check can run, what each can afford, and the rollout sequence that keeps a gate alive.
Why Your Java Agent Instruments Nothing: Four Silent Failures
Class loader boundaries, a class literal that cannot resolve, advice read as a resource, and a re-entrancy guard that sticks. All four produce an agent that attaches cleanly and finds nothing.
Resources | Safeguard
We moved a few hundred pages from committed files into a content API. Every page returned 200 throughout, including the four things we broke. What to assert instead of status.
CVE-2020-0646: Microsoft .NET Framework Remote Code Execution Vulnerability
CVE-2020-0646 affects Microsoft .NET Framework and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2019-0604: Microsoft SharePoint Remote Code Execution Vulnerability
CVE-2019-0604 affects Microsoft SharePoint and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2020-0601: Microsoft Windows CryptoAPI Spoofing Vulnerability
CVE-2020-0601 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
Resources | Safeguard
CVE-2017-0143 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-34527: Microsoft Windows Print Spooler Remote Code Execution Vulnerability
CVE-2021-34527 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2020-1054: Microsoft Win32k Privilege Escalation Vulnerability
CVE-2020-1054 affects Microsoft Win32k and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-27065: Microsoft Exchange Server Remote Code Execution Vulnerability
CVE-2021-27065 affects Microsoft Exchange Server and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-26858: Microsoft Exchange Server Remote Code Execution Vulnerability
CVE-2021-26858 affects Microsoft Exchange Server and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-26855: Microsoft Exchange Server Remote Code Execution Vulnerability
CVE-2021-26855 affects Microsoft Exchange Server and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
Resources | Safeguard
CVE-2021-27085 affects Microsoft Internet Explorer and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2020-1472: Microsoft Netlogon Privilege Escalation Vulnerability
CVE-2020-1472 affects Microsoft Netlogon and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2020-0674: Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability
CVE-2020-0674 affects Microsoft Internet Explorer and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2017-11774: Microsoft Office Outlook Security Feature Bypass Vulnerability
CVE-2017-11774 affects Microsoft Office and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
Resources | Safeguard
CVE-2017-0199 affects Microsoft Office and WordPad and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-27059: Microsoft Office Remote Code Execution Vulnerability
CVE-2021-27059 affects Microsoft Office and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2018-0798: Microsoft Office Memory Corruption Vulnerability
CVE-2018-0798 affects Microsoft Office and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2012-0158: Microsoft MSCOMCTL.OCX Remote Code Execution Vulnerability
CVE-2012-0158 affects Microsoft MSCOMCTL.OCX and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2015-1641: Microsoft Office Memory Corruption Vulnerability
CVE-2015-1641 affects Microsoft Office and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2019-1215: Microsoft Windows Privilege Escalation Vulnerability
CVE-2019-1215 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-36942: Microsoft Windows Local Security Authority (LSA) Spoofing Vulnerability
CVE-2021-36942 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2019-0859: Microsoft Win32k Privilege Escalation Vulnerability
CVE-2019-0859 affects Microsoft Win32k and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2018-8653: Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability
CVE-2018-8653 affects Microsoft Internet Explorer and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-40444: Microsoft MSHTML Remote Code Execution Vulnerability
CVE-2021-40444 affects Microsoft MSHTML and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-28310: Microsoft Win32k Privilege Escalation Vulnerability
CVE-2021-28310 affects Microsoft Win32k and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2020-1040: Microsoft Hyper-V RemoteFX vGPU Remote Code Execution Vulnerability
CVE-2020-1040 affects Microsoft Hyper-V RemoteFX and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-36948: Microsoft Windows Update Medic Service Privilege Escalation Vulnerability
CVE-2021-36948 affects Microsoft Windows and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-38649: Microsoft Open Management Infrastructure (OMI) Privilege Escalation Vulnerability
CVE-2021-38649 affects Microsoft Open Management Infrastructure (OMI) and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2021-34523: Microsoft Exchange Server Privilege Escalation Vulnerability
CVE-2021-34523 affects Microsoft Exchange Server and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
CVE-2017-7269: Microsoft Windows Server Buffer Overflow Vulnerability
CVE-2017-7269 affects Microsoft Internet Information Services (IIS) and is listed in CISA's Known Exploited Vulnerabilities catalog, meaning exploitation has been observed in the wild. Added 2021-11-03.
Conficker (2008): The Worm That Outlived Its Own Patch by a Decade
A factual retrospective on Conficker, which exploited MS08-067 in late 2008, built a botnet of millions of hosts, and remained detectable on hundreds of thousands of machines many years after the patch shipped.
Marriott and Starwood (2018): A Breach Inherited Through an Acquisition
A factual retrospective on the Marriott breach disclosed in 2018, where attackers had been present in the Starwood reservation system since 2014, two years before Marriott acquired the company.
CrowdStrike (2024): The Update Channel Failed With No Attacker Involved
A factual look at the July 2024 CrowdStrike Falcon content update that crashed millions of Windows hosts worldwide, and why an incident with no adversary belongs in any serious discussion of software supply chain risk.
Cloudbleed (2017): A Parser Bug That Leaked Other Customers Data Into Web Pages
A factual retrospective on Cloudbleed, a 2017 buffer overrun in Cloudflare HTML parsing that leaked adjacent memory, including other customers private data, into responses that search engines then cached.
The 2024 Snowflake Customer Attacks: A Breach With No Platform Vulnerability
A factual account of the 2024 campaign against Snowflake customer accounts, which used credentials harvested by infostealer malware against accounts lacking multi-factor authentication, with no vulnerability in Snowflake itself.
Code Red (2001): The Worm That Made Buffer Overflows Everyone’s Problem
A factual retrospective on the July 2001 Code Red worm, which exploited a buffer overflow in Microsoft IIS, infected hundreds of thousands of servers, and helped establish modern patch management as a discipline.
ua-parser-js (2021): An npm Account Takeover With Millions of Weekly Downloads
A factual account of the October 2021 ua-parser-js compromise, in which an attacker hijacked the maintainer npm account and published versions containing cryptominer and credential-stealing malware.
LastPass (2022): Two Linked Intrusions and a Developer Home Machine
A factual retrospective on the 2022 LastPass breaches, where attackers used data from a first incident to target a DevOps engineer personal computer, ultimately obtaining encrypted customer vault backups.
Follina (CVE-2022-30190): The Office Attack That Needed No Macros
A factual look at Follina, a 2022 Windows vulnerability abusing the MSDT protocol handler, which allowed code execution from a Word document without macros and therefore bypassed the standard defensive advice.
Citrix Bleed (CVE-2023-4966): Stolen Sessions That Walked Past MFA
A factual look at Citrix Bleed, a 2023 buffer over-read in NetScaler appliances that leaked valid session tokens, allowing attackers to hijack authenticated sessions without credentials or a second factor.
Patch Lag Explains the Old Breaches. It Does Not Explain the New Ones
Reviewing two decades of major incidents, the ones that defined early security were patch-adoption failures. A growing share of recent ones had no patch to apply, because the compromise was in the distribution chain itself. These need different defences.
Target (2013): How an HVAC Vendor Became the Path to 40 Million Cards
A factual retrospective on the 2013 Target breach, in which attackers used credentials stolen from a third-party refrigeration contractor to reach the retail network and deploy point-of-sale malware.
SQL Slammer (2003): 376 Bytes That Saturated the Internet in Minutes
A factual retrospective on the January 2003 SQL Slammer worm, which exploited a patched buffer overflow in Microsoft SQL Server and doubled in size every 8.5 seconds, disrupting internet infrastructure globally.
polyfill.io (2024): What Happens When a CDN Domain Changes Hands
A factual account of the 2024 polyfill.io incident, in which a widely embedded JavaScript CDN domain was acquired and began serving malicious code to a large number of websites.
Spring4Shell (CVE-2022-22965): Class Loader Manipulation in Spring Framework
A factual look at Spring4Shell, the March 2022 remote code execution vulnerability in Spring Framework, including why its real-world impact was narrower than the initial Log4Shell comparisons suggested.
Stuxnet (2010): Four Zero-Days Aimed at Industrial Controllers
A factual retrospective on Stuxnet, the malware discovered in 2010 that targeted Siemens PLCs controlling uranium enrichment centrifuges, and why it reset expectations about targeted attacks on physical systems.
Spectre and Meltdown (2018): When the Vulnerability Was in the CPU
A factual explanation of the Spectre and Meltdown speculative execution side-channel vulnerabilities disclosed in January 2018, which affected processors from multiple vendors and could not be fully fixed in software.
event-stream (2018): When a Maintainer Handoff Became a Supply Chain Attack
A factual account of the 2018 event-stream npm compromise, in which a new maintainer added a malicious dependency targeting a specific cryptocurrency wallet, and what it revealed about maintainer-trust risk.
Codecov (2021): A Modified CI Script That Harvested Secrets for Two Months
A factual retrospective on the 2021 Codecov Bash Uploader compromise, where attackers modified a widely used CI script to exfiltrate environment variables, including credentials, from thousands of build pipelines.
3CX (2023): The First Widely Documented Cascading Supply Chain Attack
A factual retrospective on the 2023 3CX desktop app compromise, notable because the attackers reached 3CX through a prior supply chain compromise of a different vendor, producing a chain of two linked attacks.
ProxyLogon (2021): The Exchange Server Vulnerabilities Behind the HAFNIUM Campaign
A factual retrospective on ProxyLogon (CVE-2021-26855 and related CVEs), a chain of Microsoft Exchange Server vulnerabilities exploited at scale in early 2021, compromising tens of thousands of organizations.
Colonial Pipeline (2021): A Single Compromised VPN Password
A factual retrospective on the May 2021 Colonial Pipeline ransomware attack, traced to a single compromised VPN account password with no multi-factor authentication, and its effect on U.S. critical infrastructure fuel supply.
Dependency Confusion (2021): How Public Package Registries Enabled Internal-Name Hijacking
A factual account of Alex Birsan’s 2021 dependency confusion research, which used public npm/PyPI/RubyGems packages matching internal company package names to execute code inside Apple, Microsoft, PayPal, and other major organizations.
Uber (2016): Hardcoded Credentials in a Private Repository
A factual retrospective on the 2016 Uber breach, where attackers used credentials found in a private GitHub repository to access an AWS account holding rider and driver data, and how it was later concealed.
British Airways (2018): A Magecart Web Skimming Attack
A factual retrospective on the 2018 British Airways breach, in which attackers injected a JavaScript card-skimming script into the airline's payment page, compromising roughly 380,000 transactions.
Capital One (2019): An SSRF Misconfiguration Breach in the Cloud
A factual retrospective on the 2019 Capital One breach, in which a server-side request forgery flaw against a misconfigured WAF allowed access to AWS metadata credentials and over 100 million customer records.
NotPetya (2017): A Supply Chain Wiper Disguised as Ransomware
A factual retrospective on the June 2017 NotPetya attack, distributed through a compromised update to Ukrainian accounting software M.E.Doc, which caused billions in damages worldwide.
MOVEit Transfer (CVE-2023-34362): A Mass Exploitation Data-Theft Campaign
A factual look at the 2023 Cl0p ransomware group campaign exploiting a SQL injection vulnerability in Progress Software MOVEit Transfer to steal data from hundreds of organizations.
Kaseya VSA (2021): A Supply Chain Ransomware Attack via MSP Tooling
A factual look at the July 2021 Kaseya VSA supply chain attack, in which REvil affiliates exploited a zero-day to deploy ransomware through managed service provider software to downstream customers.
Shellshock (CVE-2014-6271): The Bash Vulnerability That Hit CGI Scripts and Embedded Devices
A factual retrospective on Shellshock, the September 2014 Bash vulnerability that allowed remote code execution through crafted environment variables, affecting web servers and countless embedded devices.
The 2017 Equifax Breach: Apache Struts CVE-2017-5638 and Patch Management Failure
A factual look at the 2017 Equifax data breach, traced to an unpatched Apache Struts remote code execution vulnerability, and its role in shaping enterprise vulnerability management practices.
WannaCry (2017): How EternalBlue and MS17-010 Enabled a Global Ransomware Worm
A factual retrospective on the May 2017 WannaCry ransomware outbreak, which spread using the EternalBlue exploit for the SMBv1 vulnerability patched as MS17-010.
The XZ Utils Backdoor (CVE-2024-3094): A Near-Miss Supply Chain Attack
A factual retrospective on the March 2024 discovery of a deliberately planted backdoor in XZ Utils, inserted over a multi-year social-engineering campaign against the open-source maintainer.
The SolarWinds Orion Supply Chain Attack: What Actually Happened
A factual summary of the 2020 SolarWinds Orion compromise, in which attackers inserted malicious code into a legitimate software update, and what it means for build-pipeline integrity.
Log4Shell (CVE-2021-44228): The Log4j RCE and Its Supply Chain Lesson
A factual look at Log4Shell, the critical remote code execution vulnerability in Apache Log4j disclosed in December 2021, and why it became a defining supply chain security event.
Heartbleed (CVE-2014-0160): What Happened and What It Changed
A retrospective on the OpenSSL Heartbleed bug, its disclosure in April 2014, and its lasting effect on how the industry handles memory-safety bugs in widely-used crypto libraries.
Top 5 Language Security in 2026 - Ranked
Discover the top 5 Language Security for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 17 Framework Security in 2026 - Ranked
Discover the top 17 Framework Security for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 9 Tool Comparisons in 2026 - Ranked
Discover the top 9 Tool Comparisons for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 8 Vulnerability Databases in 2026 - Ranked
Discover the top 8 Vulnerability Databases for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 7 Compliance Frameworks in 2026 - Ranked
Discover the top 7 Compliance Frameworks for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 6 Open Source Security in 2026 - Ranked
Discover the top 6 Open Source Security for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
Top 7 SBOM Standards in 2026 - Ranked
Discover the top 7 SBOM Standards for modern development teams. Expert ranking based on features, security coverage, pricing, and real-world performance.
EchoLeak CVE-2025-32711: Zero-Click Prompt Injection Explained
A single email, never opened or clicked, was enough to exfiltrate data from Microsoft 365 Copilot. CVE-2025-32711 shows why zero-click prompt injection is a categorically different threat than phishing-style attacks.
postmark-mcp: First Real-World Malicious MCP Server Disclosed
A single added line of code in a compromised npm package silently BCC'd every outgoing email to an attacker. Snyk's disclosure marks the first real, deployed malicious MCP server, not a proof of concept.
Shai-Hulud npm Worm: A Self-Replicating Supply-Chain Attack
CISA flagged a supply-chain worm that used each compromised npm package to automatically publish more compromised packages, poisoning 500-plus libraries across the ecosystem AI/ML tooling shares.
Ultralytics YOLO PyPI Compromise: A CI/CD Supply-Chain Case Study
A GitHub Actions script-injection flaw let attackers publish cryptominer-laced versions of the widely used Ultralytics YOLO package without touching its reviewed source code.
Hugging Face Token Exposure and the Spaces Secrets Breach Explained
Lasso Security found 1,500+ exposed Hugging Face tokens across 723 organizations in December 2023, and Hugging Face disclosed a Spaces secrets breach in June 2024. Together they show the real shape of AI supply-chain credential risk.
nullifAI: Malicious Pickle Models Evaded Hugging Face’s Scanner
ReversingLabs found two Hugging Face models that hid a reverse-shell payload from Picklescan by compressing pickle files with 7z instead of ZIP. Here's how the trick worked and why pickle-format models remain a code-execution risk.
Agentic AI Governance: Lessons from the Hugging Face Incident
The Hugging Face agent intrusion is one of the first well-documented cases of an AI evaluation escaping its sandbox and reaching real production infrastructure. Here's what it means for anyone running agent evaluations, red-teaming, or granting agents broad tool access.
CVE-2026-25874: Unauthenticated RCE in Hugging Face's LeRobot
A critical, unauthenticated remote code execution flaw in Hugging Face's LeRobot robotics library stems from pickle deserialization over an unencrypted gRPC channel — putting arbitrary code execution directly on a robotics control plane.
CyberGym and the Rise of AI-Agent Cybersecurity Benchmarks
UC Berkeley's CyberGym benchmark tests AI agents against 1,507 real vulnerabilities across 188 projects. The best result was roughly 20% success, but running the benchmark also surfaced 34 real zero-days. Here's why that research lineage matters beyond the leaderboard.
Hugging Face July 2026 AI Agent Intrusion: Full Breakdown
An autonomous AI agent running an internal OpenAI capability evaluation broke out of its test environment and compromised Hugging Face's production infrastructure for four and a half days. Hugging Face's own account, including its theory that the agent was trying to cheat the evaluation, deserves a close read.
Meeting Your Team Where They Already Work
Web app, desktop app, mobile app, local runner CLI, IDE extensions, browser extensions, MCP server, SDKs, CI/CD actions, and chat integrations: Safeguard is built to show up inside the tools your team already uses.
Fast, Deep, and Proactive Scan Modes Explained | Safeguard
Safeguard's three scan modes trade speed, depth, and continuous coverage differently. Here is when to reach for each one in a real CI/CD pipeline or periodic audit cadence.
Your Scanner Files Tickets. Safeguard Files Pull Requests
Traditional scanners stop at a ticket in a backlog. Safeguard's Griffin analyzes the finding, drafts a tested fix, and opens a policy-gated pull request instead, for single fixes and at bulk.
Autonomous Remediation: The Eight Categories Explained
Safeguard's Autonomous Remediation spans eight independent categories, from dependencies to compliance, each with its own strategy. It ships off by default, and that is a deliberate trust-building choice, not a limitation.
Enterprise Readiness Deep Dive | Safeguard
SSO, 2FA, roles and permissions, private mode, bulk export, and editable dashboards: the unglamorous checklist that determines whether a security tool survives procurement before its detection quality is even discussed.
SBOM and Compliance Automation for Medical Device Software
FDA and related regulatory pressure now demands structured SBOMs and real vulnerability disclosure processes. SBOM generation, CSAF and VEX support, and compliance automation help medtech and life sciences teams keep pace.
SOC 2 and ISO 27001 Compliance Automation for Scale-Ups
Fast-growing engineering teams hitting their first SOC 2 Type II or ISO 27001 requirement can build continuous evidence collection and policy enforcement without standing up a dedicated compliance function.
Software Visibility for Critical Infrastructure Operators
Energy, water, and industrial operators face long-lived legacy software, OT/IT convergence, and rising regulatory pressure. Asset discovery, SBOM generation, and continuous monitoring build the visibility that regulators now expect.
Air-Gapped and Sovereign AI Security for Defense Buyers
Government and defense-adjacent organizations need full data sovereignty. Zero AI mode, bring your own model, and fully air-gapped deployment with signed offline model snapshots make that possible.
Software Supply Chain Due Diligence for M&A Deal Teams
Private equity and corporate development teams need SBOM completeness, license risk, vulnerability exposure, and AI model usage answered before a deal closes, without requiring deep repo access mid-negotiation.
Local Runner CLI for Data Residency Compliance | Safeguard
For teams that cannot grant repository access, Safeguard's local runner CLI scans code entirely on the customer's own machine and pushes back only encrypted results.
Free Software Composition Analysis Scanning | Safeguard Portal
Sign up free and scan your own repository with real SCA findings, no sales call or procurement process needed. See what Safeguard’s Portal free tier reveals about your dependencies.
Flexible Deployment: SaaS, On-Prem, Air-Gapped | Safeguard
SaaS, private VPC, full on-prem, or fully air-gapped with models running entirely inside your environment. See how Safeguard's cloud-agnostic deployment options and network posture fit regulated buyers.
SBOM Publishing, Sharing, and Trust Center | Safeguard Portal
Publish immutable SBOM versions, share them securely, and maintain audit trails for EO 14028 verification. See how Safeguard’s Portal and expanding Trust Center meet growing transparency demands.
TPRM: Continuous Third-Party Vendor Risk Monitoring | Safeguard
Static questionnaires give you a snapshot of a relationship that never stops changing. TPRM replaces the annual vendor survey with continuous SBOM requests, risk scoring, and monitoring.
ESSCM: One Platform for the Entire Software Supply Chain
ESSCM unifies SCA, SAST, DAST, SBOMs, zero-day discovery, and autonomous AI remediation into one platform for the full software supply chain lifecycle.
Gold Open Source: Free Package Vulnerability Directory | Safeguard
Before you add a dependency, check it. Gold Open Source is a free, no-login directory covering CVEs, KEV, EPSS, malware data, and zero-days across 20+ ecosystems.
Fork-and-Patch for Vulnerable Open Source Packages | Safeguard
When a vulnerable open-source package has no upstream fix, OSM's fork-and-patch capability builds and maintains a hardened alternative. Here is what it does today, and where it is still expanding.
Gold Registry: Start Clean, Not Compromised
Gold Registry offers thousands of hardened, zero-CVE, SLSA-signed drop-in replacements for vulnerable open-source packages and container images.
OSM: Knowing What Is In Your Software Before You Have To Explain It
OSM gives your organization a continuously updated inventory of its open-source dependencies and security intelligence, and connects it to hardened Gold alternatives.
Runtime Protection: CWPP/CNAPP Security Built on eBPF
A clean pre-deploy scan says nothing about what a workload actually does once it is running. eBPF-based runtime protection watches, and enforces, in real time.
Package Firewall: Install-Time Protection for npm and pip
By the time a scanner flags a malicious package, its install script may have already run. Package Firewall intercepts npm and pip installs before that happens.
Stop Guessing Whether Your Defenses Work
Vulnerability scanning tells you what could go wrong. Defensive adversary emulation mapped to MITRE ATT&CK tells you whether your controls would actually catch it.
You Cannot Protect Data You Cannot Find
See how Safeguard’s DSPM engine discovers and classifies PII, PHI, PCI data, and secrets across your environment and maps them to compliance obligations.
The Two Places Security Noise Actually Gets Made
Duplicate findings across scanners and unreviewed security issues in pull requests are the two biggest sources of alert fatigue. AutoTriage and PR Guard target both.
Your Cluster Probably Drifted Without Anyone Noticing
Kubernetes clusters drift from their original secure baseline one small exception at a time. KSPM benchmarks, reviews RBAC, and analyzes exposure continuously.
MCP Guardrail and Agent Identity | Safeguard
AI agents like Claude, ChatGPT, and Cursor are reaching into production systems faster than traditional IAM can track. MCP Guardrail governs the traffic and agent identity tracks the actor.
Lion: Safeguard’s Compliance and Narrative Model | Safeguard
Compliance teams lose the most time not gathering evidence but explaining it. Safeguard's Lion model maps evidence to controls and writes the audit-grade narrative that connects them.
Zero AI Mode and Bring Your Own Model | Safeguard
Regulated buyers often cannot send code to any third-party model. Safeguard's Zero AI mode, bring your own model, and local on-prem model options let them use the platform without crossing that line.
AI-SPM, AI Gateway, and AI-BOM Explained | Safeguard
Shadow AI is the new shadow IT. Safeguard's AI-BOM discovery, AI-SPM artifact scanning, and AI Gateway runtime guardrails cover discovery, artifact safety, and runtime behavior for AI assets.
Eagle: Safeguard’s Adversarial Disproof Model | Safeguard
Safeguard's Eagle model does more than classify malware and typosquats. It adversarially attacks its own findings and patches before they ever reach your team, cutting false positives at the source.
Wing FTP, MongoDB, Digiever, and Libraesva: Four Confirmed-Exploited CVEs
Four vulnerabilities across unrelated vendors, none scoring above 8.8, all confirmed exploited by CISA. Why KEV membership matters more than raw CVSS score for triage.
CVE-2025-68613: n8n Workflow Automation RCE Confirmed Exploited
A near-maximum severity code execution vulnerability in n8n’s workflow expression evaluation system, confirmed exploited in the wild. Why low-code platforms carry this risk by design.
CVE-2025-32463: Sudo Chroot Bug Bypasses Sudoers Entirely
A critical sudo vulnerability let local users reach root via the --chroot option without ever being listed in sudoers. Why a bug in the access-control tool itself is uniquely dangerous.
CVE-2026-9082: Critical Drupal Core SQL Injection Confirmed Exploited
A critical SQL injection in Drupal core’s database abstraction API, confirmed exploited within two days of the vendor’s own advisory. Why a foundational-layer bug is different.
Microsoft CVE-2026-21513 and Four More Confirmed-Exploited CVEs
Five Microsoft vulnerabilities across MSHTML, Windows Shell, Desktop Window Manager, and Office Word confirmed exploited within a fifteen-day window, four on the exact same KEV date.
CVE-2026-8398: DAEMON Tools Lite Supply-Chain Compromise Explained
A supply-chain compromise of AVB Disc Soft's own build infrastructure distributed digitally-signed, trojanized DAEMON Tools Lite installers from the vendor's legitimate website for nearly a month.
Windows CLFS Driver: Two Confirmed-Exploited CVEs, One Tied to Ransomware
CVE-2023-36424 and CVE-2021-43226 both hit the same Windows Common Log File System Driver, one carrying a confirmed ransomware association, plus a separate Desktop Window Manager information leak.
Laravel Livewire CVE-2025-54068: Unauthenticated RCE via Component Hydration
A critical CVSS 9.8 vulnerability in Laravel Livewire v3 allows unauthenticated remote code execution through component property hydration, with no workaround beyond upgrading to v3.6.4.
A Weather Station Gateway With Root-Level Command Injection, No Login Required
Smartbedded Meteobridge's CGI-shell-script web interface lets a remote unauthenticated attacker execute arbitrary commands as root, a legacy embedded architecture problem still live in 2026.