CVE-2022-39315

CVE-2022-39315 is a medium-severity security vulnerability in getkirby/cms (composer), affecting versions < 3.5.8.2. It is fixed in 3.5.8.2, 3.6.6.2, 3.7.5.1, 3.8.1.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

Kirby CMS vulnerable to user enumeration in the brute force protection

TL;DR

This vulnerability affects all Kirby sites with user accounts (unless Kirby's API and Panel are disabled in the config). It can only be exploited for targeted attacks because the attack does not scale to brute force.

Introduction

User enumeration is a type of vulnerability that allows attackers to confirm which users are registered in a Kirby installation. This information can be abused for social engineering attacks against users of the site or to find out the organizational structure of the company.

User enumeration attacks are performed by entering an existing and a non-existing user into the email address field of the login form. If the system returns a different response or behaves differently depending on whether the user exists, the attacker can enter unknown email addresses and use the different behavior as a clue for the (non-)existing user.

Impact

Kirby comes with a built-in brute force protection. By default, it will prevent further login attempts after 10 failed logins from a single IP address or of a single existing user. After every failed login attempt, Kirby inserts a random delay between one millisecond and two seconds to make automated attacks harder and to avoid leaking whether the user exists. Unfortunately, this random delay was not inserted after the brute force limit was reached.

Because Kirby only tracks failed login attempts per email address for existing users but always tracks failed login attempts per IP address, this behavior could be abused by attackers for user enumeration. For this to work, an attacker would need to create login requests beyond the trials limit (which is 10 by default) from two or more IP addresses. After the trials limit was reached, the login form immediately blocked further requests for existing users, but not for invalid users.

This exploit does not scale to brute force attacks because of the delay during the first 10 requests per user, the faint difference between the responses for valid and invalid users and the fact that code-based logins would send an email for every login attempt, which makes the attack easy to spot. The vulnerability is therefore only relevant for targeted attacks.

CVE-2022-39315 has a CVSS score of 6.5 (Medium). The vector is network-reachable, no privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (3.5.8.2, 3.6.6.2, 3.7.5.1, 3.8.1); upgrading removes the vulnerable code path.

Affected versions

getkirby/cms (< 3.5.8.2) getkirby/cms (>= 3.6.0, < 3.6.6.2) getkirby/cms (>= 3.7.0, < 3.7.5.1) getkirby/cms (= 3.8.0)

Security releases

getkirby/cms → 3.5.8.2 (composer) getkirby/cms → 3.6.6.2 (composer) getkirby/cms → 3.7.5.1 (composer) getkirby/cms → 3.8.1 (composer)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

The problem has been patched in Kirby 3.5.8.2, Kirby 3.6.6.2, Kirby 3.7.5.1 and Kirby 3.8.1. Please update to one of these or a later version to fix the vulnerability.

In all of the mentioned releases, we have rewritten the affected code so that the delay is also inserted after the brute force limit is reached.

Frequently Asked Questions

  1. What is CVE-2022-39315? CVE-2022-39315 is a medium-severity security vulnerability in getkirby/cms (composer), affecting versions < 3.5.8.2. It is fixed in 3.5.8.2, 3.6.6.2, 3.7.5.1, 3.8.1.
  2. How severe is CVE-2022-39315? CVE-2022-39315 has a CVSS score of 6.5 (Medium). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which versions of getkirby/cms are affected by CVE-2022-39315? getkirby/cms (composer) versions < 3.5.8.2 is affected.
  4. Is there a fix for CVE-2022-39315? Yes. CVE-2022-39315 is fixed in 3.5.8.2, 3.6.6.2, 3.7.5.1, 3.8.1. Upgrade to this version or later.
  5. Is CVE-2022-39315 exploitable, and should I be worried? Whether CVE-2022-39315 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether CVE-2022-39315 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix CVE-2022-39315?
    • Upgrade getkirby/cms to 3.5.8.2 or later
    • Upgrade getkirby/cms to 3.6.6.2 or later
    • Upgrade getkirby/cms to 3.7.5.1 or later
    • Upgrade getkirby/cms to 3.8.1 or later

Other vulnerabilities in getkirby/cms

Stop the waste.
Protect your environment with Kodem.