<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 08 Oct 2026 07:37:25 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-55569</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-55569</link>
      <description>&lt;p&gt;aqua is a declarative command-line version manager written in Go. Prior to 2.60.1, pkg/unarchive/archives.go in the handler.HandleFile method calls os.Symlink with archives.FileInfo.LinkTarget without verifying that the target remains under the extraction destination. A later regular-file entry at the same archive path is opened with OpenFile using O_CREATE and O_WRONLY, which follows the attacker-planted symlink. A malicious or compromised package archive can therefore write attacker-controlled bytes outside aqua&amp;#39;s extraction directory with the privileges of the user running aqua, potentially overwriting shell startup files, tool configuration, or writable executable paths. This issue is fixed in version 2.60.1.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;aqua is a declarative command-line version manager written in Go. Prior to 2.60.1, pkg/unarchive/archives.go in the handler.HandleFile method calls os.Symlink with archives.FileInfo.LinkTarget without verifying that the target remains under the extraction destination. A later regular-file entry at the same archive path is opened with OpenFile using O_CREATE and O_WRONLY, which follows the attacker-planted symlink. A malicious or compromised package archive can therefore write attacker-controlled bytes outside aqua&amp;#39;s extraction directory with the privileges of the user running aqua, potentially overwriting shell startup files, tool configuration, or writable executable paths. This issue is fixed in version 2.60.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-55569</guid>
    </item>
    <item>
      <title>GHSA-mf5c-hw34-4hpp — Aqua's archive extraction follows attacker-planted symlinks, allowing writes outside the install directory</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-mf5c-hw34-4hpp</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/aquaproj/aqua/v2&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`aquaproj/aqua` extracts downloaded tool archives through `pkg/unarchive/archives.go` using `github.com/mholt/archives`. The archive handler creates symlink entries with `os.Symlink(f.LinkTarget, dstPath)` without validating that the symlink target resolves inside the extraction destination. A subsequent regular-file archive entry with the same path is opened with `OpenFile(dstPath, O_CREATE|O_WRONLY)`, which follows the attacker-planted symlink.&lt;/p&gt;
&lt;p&gt;A malicious or compromised aqua package / release asset can therefore write attacker-controlled bytes outside aqua&amp;#39;s extraction directory, with the privileges of the user running aqua.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Affected file: `pkg/unarchive/archives.go`&lt;/p&gt;
&lt;p&gt;Affected function: `(*handler).HandleFile`&lt;/p&gt;
&lt;p&gt;The vulnerable logic is the combination of:&lt;/p&gt;
&lt;p&gt;```go
os.Symlink(f.LinkTarget, dstPath)
```&lt;/p&gt;
&lt;p&gt;for symlink entries, followed by:&lt;/p&gt;
&lt;p&gt;```go
h.fs.OpenFile(dstPath, os.O_CREATE|os.O_WRONLY, f.Mode())
```&lt;/p&gt;
&lt;p&gt;for a later regular file entry at the same archive path. The symlink target is not jailed to the extraction destination, and the later file open follows the symlink.&lt;/p&gt;
&lt;p&gt;The attached PoC uses a two-entry `tar.gz` archive:&lt;/p&gt;
&lt;p&gt;1. symlink `pwn -&amp;gt; &amp;lt;outside target&amp;gt;`;
2. regular file `pwn` containing attacker-controlled bytes.&lt;/p&gt;
&lt;p&gt;The same `mholt/archives` extraction flow is used for the vulnerable handler and for a negative-control handler using a destination-root jail.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Attachment: `submission_aqua_archive_symlink_traversal_v2_final.zip`&lt;/p&gt;
&lt;p&gt;Run:&lt;/p&gt;
&lt;p&gt;```ba…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/aquaproj/aqua/v2&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`aquaproj/aqua` extracts downloaded tool archives through `pkg/unarchive/archives.go` using `github.com/mholt/archives`. The archive handler creates symlink entries with `os.Symlink(f.LinkTarget, dstPath)` without validating that the symlink target resolves inside the extraction destination. A subsequent regular-file archive entry with the same path is opened with `OpenFile(dstPath, O_CREATE|O_WRONLY)`, which follows the attacker-planted symlink.&lt;/p&gt;
&lt;p&gt;A malicious or compromised aqua package / release asset can therefore write attacker-controlled bytes outside aqua&amp;#39;s extraction directory, with the privileges of the user running aqua.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Affected file: `pkg/unarchive/archives.go`&lt;/p&gt;
&lt;p&gt;Affected function: `(*handler).HandleFile`&lt;/p&gt;
&lt;p&gt;The vulnerable logic is the combination of:&lt;/p&gt;
&lt;p&gt;```go
os.Symlink(f.LinkTarget, dstPath)
```&lt;/p&gt;
&lt;p&gt;for symlink entries, followed by:&lt;/p&gt;
&lt;p&gt;```go
h.fs.OpenFile(dstPath, os.O_CREATE|os.O_WRONLY, f.Mode())
```&lt;/p&gt;
&lt;p&gt;for a later regular file entry at the same archive path. The symlink target is not jailed to the extraction destination, and the later file open follows the symlink.&lt;/p&gt;
&lt;p&gt;The attached PoC uses a two-entry `tar.gz` archive:&lt;/p&gt;
&lt;p&gt;1. symlink `pwn -&amp;gt; &amp;lt;outside target&amp;gt;`;
2. regular file `pwn` containing attacker-controlled bytes.&lt;/p&gt;
&lt;p&gt;The same `mholt/archives` extraction flow is used for the vulnerable handler and for a negative-control handler using a destination-root jail.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Attachment: `submission_aqua_archive_symlink_traversal_v2_final.zip`&lt;/p&gt;
&lt;p&gt;Run:&lt;/p&gt;
&lt;p&gt;```ba…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-mf5c-hw34-4hpp</guid>
    </item>
  </channel>
</rss>
