/

CVE-2026-61611

Severity:

HIGH RISK

(7.5)

Insufficient Throttling (CWE-307) in Lychee Albums

CVE-2026-61611

Deferred

Vulnerability type

Category:

Insufficient Throttling

CWE:

CWE-307

Impact:

Unauthorized access to private photo collections

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Lychee does not sufficiently limit password attempts when users unlock password-protected albums. A remote unauthenticated attacker who knows or obtains an album identifier may automate guesses and gain access to private photos if the album password is recovered.

Lychee does not sufficiently limit password attempts when users unlock password-protected albums. A remote unauthenticated attacker who knows or obtains an album identifier may automate guesses and gain access to private photos if the album password is recovered.

Affected context

The issue occurs in Lychee deployments where the album-unlock endpoint is reachable and password-protected albums can be identified. The unlock authorization path accepts repeated attempts without applying throttling, backoff, CAPTCHA, attempt counting, or account- or album-level lockout.

The issue occurs in Lychee deployments where the album-unlock endpoint is reachable and password-protected albums can be identified. The unlock authorization path accepts repeated attempts without applying throttling, backoff, CAPTCHA, attempt counting, or account- or album-level lockout.

Exploit preconditions

  • Attack surface: The remote album-unlock API endpoint - Required access: No authentication is generally required, but the attacker

must know or obtain a valid album identifier

  • Trigger point: Repeated password submissions to the album unlock operation - Why exploitation is possible: Each password guess is checked without

meaningful limits on frequency or cumulative failures

  • Attack surface: The remote album-unlock API endpoint - Required access: No authentication is generally required, but the attacker

must know or obtain a valid album identifier

  • Trigger point: Repeated password submissions to the album unlock operation - Why exploitation is possible: Each password guess is checked without

meaningful limits on frequency or cumulative failures

Why this happens

The underlying flaw is inadequate enforcement of limits around authentication attempts. The authorization flow permits any caller to submit guesses, while password verification is performed repeatedly without throttling, progressive delay, CAPTCHA, or lockout controls. This behavior maps to CWE-307, Improper Restriction of Excessive Authentication Attempts, because the application does not sufficiently constrain automated password guessing.

The underlying flaw is inadequate enforcement of limits around authentication attempts. The authorization flow permits any caller to submit guesses, while password verification is performed repeatedly without throttling, progressive delay, CAPTCHA, or lockout controls. This behavior maps to CWE-307, Improper Restriction of Excessive Authentication Attempts, because the application does not sufficiently constrain automated password guessing.

Potential impact

  • An attacker may recover a weak or reused album password
  • Unauthorized users could access private photo collections
  • Private images may be copied, disclosed, or redistributed
  • Repeated automated requests could consume application resources
  • An attacker may recover a weak or reused album password
  • Unauthorized users could access private photo collections
  • Private images may be copied, disclosed, or redistributed
  • Repeated automated requests could consume application resources

General mitigation guidance

Mitigation generally centers on making password verification resistant to automation. Common defensive patterns include applying per-album, per-account, and per-client rate limits; introducing progressive backoff after failures; enforcing bounded attempt counters and temporary lockouts; and using CAPTCHA or equivalent challenge mechanisms when suspicious activity is detected. Album identifiers and unlock endpoints should be treated as sensitive attack surfaces, while authorization should remain separate from request admission. Monitoring, alerting, and least-privilege access to stored photos can reduce impact if a password is compromised.

Mitigation generally centers on making password verification resistant to automation. Common defensive patterns include applying per-album, per-account, and per-client rate limits; introducing progressive backoff after failures; enforcing bounded attempt counters and temporary lockouts; and using CAPTCHA or equivalent challenge mechanisms when suspicious activity is detected. Album identifiers and unlock endpoints should be treated as sensitive attack surfaces, while authorization should remain separate from request admission. Monitoring, alerting, and least-privilege access to stored photos can reduce impact if a password is compromised.

How teams detect issues like this

Detection can include static and dynamic checks for password-verification endpoints that lack rate limiting, failure counters, delay, or lockout behavior. Code review should examine authorization handlers, request validators, and password-checking actions for unrestricted retry paths. Security testing can generate repeated failed attempts and verify that policy controls activate. Web-application monitoring can also flag bursts of unlock requests, repeated failures against one album, and distributed guessing across client addresses. Automated application-security review tools may help identify missing abuse-prevention controls.

Detection can include static and dynamic checks for password-verification endpoints that lack rate limiting, failure counters, delay, or lockout behavior. Code review should examine authorization handlers, request validators, and password-checking actions for unrestricted retry paths. Security testing can generate repeated failed attempts and verify that policy controls activate. Web-application monitoring can also flag bursts of unlock requests, repeated failures against one album, and distributed guessing across client addresses. Automated application-security review tools may help identify missing abuse-prevention controls.

Sources

SourceLink
github.comgithub.com/LycheeOrg/Lychee/commit/592291458a3373114a21412956fd23cfcda32aba
github.comgithub.com/LycheeOrg/Lychee/pull/4448
github.comgithub.com/LycheeOrg/Lychee/releases/tag/v7.6.1
github.comgithub.com/LycheeOrg/Lychee/security/advisories/GHSA-48vf-fwx6-2ph6

Frequently asked

questions

Yes. An unauthenticated remote attacker may submit repeated unlock attempts

when the album identifier is known or discoverable.

Generally, no. The relevant unlock authorization permits callers to attempt

passwords without prior authentication; access to a valid album identifier is

the primary prerequisite.

Enforce layered anti-automation controls, including rate limits, progressive

backoff, bounded failure counts, temporary lockouts, and risk-based

challenges.

Treat every password-verification endpoint as an abuse-sensitive surface,

define retry policies centrally, test those policies under automation, and

monitor failed attempts for anomalous patterns.

Yes. An unauthenticated remote attacker may submit repeated unlock attempts

when the album identifier is known or discoverable.

Generally, no. The relevant unlock authorization permits callers to attempt

passwords without prior authentication; access to a valid album identifier is

the primary prerequisite.

Enforce layered anti-automation controls, including rate limits, progressive

backoff, bounded failure counts, temporary lockouts, and risk-based

challenges.

Treat every password-verification endpoint as an abuse-sensitive surface,

define retry policies centrally, test those policies under automation, and

monitor failed attempts for anomalous patterns.

Find out what's already
exploitable in your codebase.