Skip to content

Version 6.6.10#215

Merged
ildyria merged 4 commits intomasterfrom
version-6.6.10
Jun 17, 2025
Merged

Version 6.6.10#215
ildyria merged 4 commits intomasterfrom
version-6.6.10

Conversation

@ildyria
Copy link
Copy Markdown
Member

@ildyria ildyria commented Jun 17, 2025

No description provided.

@ildyria ildyria requested a review from Copilot June 17, 2025 22:27

This comment was marked as outdated.

@ildyria ildyria requested a review from Copilot June 17, 2025 22:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates the announcement banner to highlight a critical security update and adds detailed release notes for version 6.6.10.

  • Update Announcement.astro to warn about a high-severity vulnerability in v6.6.9
  • Add v6.6.10 release entry in docs/releases.md including vulnerability description, remediation steps, and credits

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
src/components/widgets/Announcement.astro Replace v6.6.9 link with v6.6.10 CVE warning; retain old block as comment
docs/releases.md Append new section for v6.6.10 with security fix details and instructions

Comment on lines +12 to +15
<!-- <a
href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.6.10"
class="text-slate-200 hover:underline dark:text-slate-200 font-medium">Lychee 6.6.10 is now available! »</a
> -->
Copy link

Copilot AI Jun 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove the commented-out anchor block (lines 12–15) to avoid dead code and reduce clutter; version control history preserves the previous link.

Suggested change
<!-- <a
href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.6.10"
class="text-slate-200 hover:underline dark:text-slate-200 font-medium">Lychee 6.6.10 is now available! »</a
> -->

Copilot uses AI. Check for mistakes.
Comment thread src/components/widgets/Announcement.astro Outdated
Comment thread docs/releases.md Outdated
Comment thread docs/releases.md Outdated
ildyria and others added 3 commits June 18, 2025 00:49
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@ildyria ildyria merged commit 51e5de8 into master Jun 17, 2025
1 check passed
@ildyria ildyria deleted the version-6.6.10 branch June 17, 2025 22:51
Comment thread docs/releases.md

#### The vulnerability

This vulnerability miss-uses the `$path` variable sent to the server, which is used to access the photos via the `SecurePathController`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This vulnerability miss-uses the `$path` variable sent to the server, which is used to access the photos via the `SecurePathController`.
This vulnerability misuses the `$path` variable sent to the server, which is used to access the photos via the `SecurePathController`.

Comment thread docs/releases.md Outdated
This vulnerability miss-uses the `$path` variable sent to the server, which is used to access the photos via the `SecurePathController`.
We wrongly assumed that `Storage::disk(StorageDiskType::LOCAL->value)->path($path);` was protected against path traversal attacks which lead to this vulnerability.

When both the encrypted links and the temporary links are disabled, it is possible to call the endpoint with fictuous path values. Ironically, by enabling either of the functionality, the endpoint becomes secure again.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When both the encrypted links and the temporary links are disabled, it is possible to call the endpoint with fictuous path values. Ironically, by enabling either of the functionality, the endpoint becomes secure again.
When both the encrypted links and the temporary links are disabled, it is possible to call the endpoint with path values that are out of scope. Ironically, by enabling either of the functionality, the endpoint becomes secure again.

?

Comment thread docs/releases.md Outdated

We applied defense in depth:

1. when neither functionality are enabled, we direclty return a 401/403 error on any call to `/image/{path}`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. when neither functionality are enabled, we direclty return a 401/403 error on any call to `/image/{path}`.
1. when neither functionality is enabled, we directly return a 401/403 error on any call to `/image/{path}`.

Comment thread docs/releases.md
We applied defense in depth:

1. when neither functionality are enabled, we direclty return a 401/403 error on any call to `/image/{path}`.
2. when either of the functionality are enabled, we check that the `$path` value generated by `Storage::disk(StorageDiskType::LOCAL->value)->path($path);` is within the intended image directory. Should this happen, we return a 418 error code (I'm a teapot) which can later be used to detect malicious calls and combined with fail-2-ban to block the IP address of the attacker.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. when either of the functionality are enabled, we check that the `$path` value generated by `Storage::disk(StorageDiskType::LOCAL->value)->path($path);` is within the intended image directory. Should this happen, we return a 418 error code (I'm a teapot) which can later be used to detect malicious calls and combined with fail-2-ban to block the IP address of the attacker.
2. when either of the functionalities are enabled, we check that the `$path` value generated by `Storage::disk(StorageDiskType::LOCAL->value)->path($path);` is within the intended image directory. Should this happen, we return a 418 error code (I'm a teapot) which can later be used to detect malicious calls and combined with fail-2-ban to block the IP address of the attacker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants