01 Signal
Advisories, exploitation and runtime releases
MopokeHQ pulls the public sources that matter for npm, Composer and PHP teams and keeps its own copy, so matching never waits on someone else's API.
Every vulnerability goes through the same seven steps. The rules for each one are on this page, so you can see why something is a P1 and what closes it.
01 Signal
MopokeHQ pulls the public sources that matter for npm, Composer and PHP teams and keeps its own copy, so matching never waits on someone else's API.
| Source | What it adds |
|---|---|
| OSV | Advisories for npm, Packagist and more, with affected version ranges |
| php.net | PHP security releases, so a runtime upgrade is an action like any other |
| CISA KEV | Vulnerabilities known to be exploited in the wild |
| FIRST EPSS | The daily probability that a CVE will be exploited |
02 Match
The scan job builds an SBOM on your runner and uploads it. MopokeHQ stores it and re-matches every stored SBOM whenever an advisory lands, so old releases are checked against new CVEs without a rescan.
Each exposure is tied to where the code runs. Deploy reports turn Likely live into Confirmed live.
deploy-production: stage: deploy environment: production script: - ./deploy.sh after_script: - !reference [.mopoke-deploy, script]03 Triage
Severity alone sends you chasing CVEs that never run. MopokeHQ combines CVSS severity, known exploitation, EPSS, live confidence and how critical the project is, then sets a deadline.
| Priority | When | Alert | Default SLA |
|---|---|---|---|
| P1 | Known exploited, malicious package, critical and confirmed live, or a runtime security release | Email straight away, escalated to the whole organisation after 4 hours without acknowledgement | 48 hours |
| P2 | Critical or high, or EPSS of 0.1 or more | Daily digest | 14 days |
| P3 | Everything else that applies | Weekly digest | 30 days |
One email per burst of advisories, grouped by fix. Lilly adds a plain-language note to each alert and can suggest "not affected" on P2 and P3. It never holds back a P1.
04 Fix
The Now screen groups findings by the upgrade that closes them, across projects, in three tiers: Now, This week and Later. Each line says what to change, where, and by when.
Merge request pipelines only fail on new findings. Existing debt goes on the roadmap instead of blocking every merge. A scheduled mopoke act job in your runner can open fix merge requests, so MopokeHQ never needs write access to GitLab.
05 Verify
MopokeHQ closes an exposure on its own only when the fixed version shows up in a reported deployment. If the fix exists only on a branch, it waits for one click from a person, and that click is logged.
06 Tell
For agencies and MSPs, projects belong to clients. When a fix is confirmed live, Lilly drafts the notice. A person approves it and it sends from your domain. Nothing Lilly writes ever sends itself.
For agencies and MSPs07 Prove
Every step above is written to an append-only, hash-chained log. Choose a framework and a period and MopokeHQ builds the evidence pack: a PDF for people, and JSON with the chain hashes so anyone can check nothing was changed.
Compliance evidenceLilly writes a plain-language note on each alert: what the advisory means for this package and version. On P2 and P3 it may suggest “not affected”, which you confirm or override with one click.
It sees the package, version, extensions and public advisory text. Never your source code. If it is down, out of credits or switched off, alerts still send.
Deciding which vulnerabilities to fix first. MopokeHQ decides with published rules that combine CVSS severity, CISA KEV, FIRST EPSS, whether the vulnerable version is live, and project criticality. The result is a P1, P2 or P3 with a default SLA of 48 hours, 14 days or 30 days.
CVSS rates how severe a vulnerability is. EPSS, from FIRST, estimates how likely it is to be exploited. MopokeHQ uses both: critical or high severity makes an exposure a P2, and so does an EPSS score of 0.1 or more. Known exploitation makes it a P1.
Under CVSS v3, scores from 9.0 to 10.0 are rated critical, so 9.8 is critical. In MopokeHQ a critical finding is a P2 by default. It becomes a P1 when it is confirmed live or known exploited.
Audit commands check one project at the moment the pipeline runs. MopokeHQ keeps every SBOM and re-checks all of them whenever a new advisory lands, knows which versions are actually deployed, groups findings by the upgrade that fixes them across projects, and keeps a log you can hand to an auditor.
From deploy reports. GitLab deployment events, a mopoke deploy step after your deploy job, or an optional runtime check-in each tell MopokeHQ which commit is live in which environment. Without a deploy report, exposures stay at Likely or Possible.
Only when the fixed version is seen deployed. A fix that exists only on a branch waits for one logged click from a person.
The scan job never fails a pipeline because MopokeHQ is unreachable. Merge request gates only fail on new findings, by default a new critical, a new secret or a new known-exploited dependency, so existing debt goes on the roadmap instead of blocking every merge.
One job in your CI pipeline. Your first SBOM is matched against every advisory we hold within minutes.