We take security very seriously. If you have found a security issue in krill, please submit a security report.
Krill users restricted to one CA can make any other CA delegate its prefixes and publish ROAs for them via bulk import
| Date: | 2026-11-02 |
|---|---|
| CVE: | CVE-2026-109141 |
| Credit: | Anthropic and Ada Logics |
| Affects: | Krill up to and including 0.16.0 |
| Severity: | High |
| Impact: | Add ROAs on behalf of another local Krill user |
| Solution: | Install Krill 0.16.1 or newer |
The vulnerability gives a role that is restricted to a list of CAs (cas = [...]) its full permission set for every request that is not tied to a CA, including the bulk import endpoint POST /api/v1/bulk/cas/import. It adds a new child CA under any existing CA, gives the child any of that CA's resources, and creates the ROAs given in the request
Krill login-session tokens reuse their encryption nonce across restarts, so any user who can log in can forge an "admin" token
| Date: | 2026-11-02 |
|---|---|
| CVE: | CVE-2026-109140 |
| Credit: | Anthropic and Ada Logics |
| Affects: | Krill up to and including 0.16.0 |
| Severity: | High |
| Impact: | Execute actions on behalf of another local Krill user |
| Solution: | Install Krill 0.16.1 or newer |
The vulnerability is that Krill encrypts every login-session token with a nonce built from a counter that is reset to 0 on every Krill restart, so the same (key, nonce) pair is used again after each restart.
Krill treats a "local parent" as already-authenticated, letting a CA operator act as any child of any CA on the same server
| Date: | 2026-11-02 |
|---|---|
| CVE: | CVE-2026-109142 |
| Credit: | Anthropic and Ada Logics |
| Affects: | Krill up to and including 0.16.0 |
| Severity: | High |
| Impact: | Take over resources of a sibling CA on the same server |
| Solution: | Install Krill 0.16.1 or newer |
When a CA's parent lives on the same Krill server: instead of building and verifying a signed CMS message, it runs the RFC 6492 provisioning exchange in- process and trusts the child identity (child_handle) that the caller put in the parent contact. Nothing checks that this child identity actually belongs to the CA making the request.
Triggered Krill crash on direct RRDP access
| Date: | 2023-01-17 |
|---|---|
| CVE: | CVE-2023-0158 |
| Credit: | user KittensAreDaBest on GitHub |
| Affects: | Krill up to and including 0.12.0 |
| Not affected: | Earlier versions |
| Severity: | Medium |
| Impact: | Crash after receiving a specially crafted query |
| Solution: | Install Krill 0.12.1 or newer |
Krill can be used to operate an RPKI Publication Server. If used in this way, it is recommended that the RPKI repository "RRDP" (RFC 8182) content is served using a separate and dedicated web server. See documentation for Krill 0.12.0.
However, Krill also supports direct access to this repository content through its built-in web server at the "/rrdp" endpoint. It was discovered that a direct query for any existing directory under "/rrdp/", rather than an RRDP file such as "/rrdp/notification.xml" as would be expected, causes Krill to crash.
If the built-in "/rrdp" endpoint is exposed directly to the internet, then malicious remote parties can cause the publication server to crash. The repository content is not affected by this, but the availability of the server and repository can cause issues if this attack is persistent and is not mitigated.
The preferred solution is to follow the documented recommendation to use a separate web server for the RRDP content, and disable direct access to the "/rrdp" endpoint. This solution is (and was) preferred because dedicated web servers are much better suited to handle high load HTTP traffic compared to the built-in HTTP application server.
Krill 0.12.1 also ensures that direct queries to the "/rrdp" endpoint will no longer result in a crash.