<?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://db.gcve.eu</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>Sun, 04 Oct 2026 08:44:36 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-48755 — Incus has an argument injection in backup compression algorithm leading to AFW and ACE</title>
      <link>https://db.gcve.eu/vuln/cve-2026-48755</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; lxc incus&lt;/p&gt;
&lt;p&gt;Incus is a system container and virtual machine manager. Prior to version 7.1.0, improper validation of user-provided backup compression algorithm leads to argument injection in the constructed command line. This leads to an arbitrary file write on the host, possibly leading to arbitrary command execution. Version 7.1.0 patches the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; lxc incus&lt;/p&gt;
&lt;p&gt;Incus is a system container and virtual machine manager. Prior to version 7.1.0, improper validation of user-provided backup compression algorithm leads to argument injection in the constructed command line. This leads to an arbitrary file write on the host, possibly leading to arbitrary command execution. Version 7.1.0 patches the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-48755</guid>
    </item>
    <item>
      <title>GHSA-v6mj-8pf4-hhw4 — Incus has an argument injection in backup compression algorithm leading to AFW and ACE</title>
      <link>https://db.gcve.eu/vuln/ghsa-v6mj-8pf4-hhw4</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/lxc/incus/v7/cmd/incusd&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Improper validation of user-provided backup compression algorithm leads to argument injection in the constructed command line. This leads to an arbitrary file write on the host, possibly leading to arbitrary command execution.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Incus validates `compression_algorithm` by parsing it into fields and checking only the first token against an allowlist:&lt;/p&gt;
&lt;p&gt;```go
fields, err := shellquote.Split(value)
...
if !slices.Contains([]string{&amp;#34;bzip2&amp;#34;, &amp;#34;gzip&amp;#34;, &amp;#34;lz4&amp;#34;, &amp;#34;lzma&amp;#34;, &amp;#34;pigz&amp;#34;, &amp;#34;pzstd&amp;#34;, &amp;#34;pxz&amp;#34;, &amp;#34;tar2sqfs&amp;#34;, &amp;#34;xz&amp;#34;, &amp;#34;zstd&amp;#34;}, fields[0]) {
    return fmt.Errorf(&amp;#34;Compression algorithm %q isn&amp;#39;t currently supported&amp;#34;, fields[0])
}
_, err = exec.LookPath(fields[0])
```&lt;/p&gt;
&lt;p&gt;Extra arguments are not rejected. `compressFile()` then prepends `-c` and passes the remaining user-supplied fields to the compressor:&lt;/p&gt;
&lt;p&gt;```go
args := []string{&amp;#34;-c&amp;#34;}
if len(fields) &amp;gt; 1 {
    args = append(args, fields[1:]...)
}
cmd := exec.Command(fields[0], args...)
cmd.Stdin = infile
cmd.Stdout = outfile
```&lt;/p&gt;
&lt;p&gt;With a value like:&lt;/p&gt;
&lt;p&gt;```text
zstd -d -f --pass-through -o /etc/cron.d/incus-zstd-rce -- /var/lib/incus/.../payload
```&lt;/p&gt;
&lt;p&gt;the daemon executes the equivalent of:&lt;/p&gt;
&lt;p&gt;```text
zstd -c -d -f --pass-through -o /etc/cron.d/incus-zstd-rce -- /var/lib/incus/.../payload
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```
python3 poc.py \
	--insecure --url https://remote-incus:8443 \
	--cert ~/.config/incus/client.crt --key ~/.config/incus/client.key \
	--instance c01 \
	--execute --yes-i-understand-this-writes-host-file
```&lt;/p&gt;
&lt;p&gt;The following was generat…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/lxc/incus/v7/cmd/incusd&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Improper validation of user-provided backup compression algorithm leads to argument injection in the constructed command line. This leads to an arbitrary file write on the host, possibly leading to arbitrary command execution.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Incus validates `compression_algorithm` by parsing it into fields and checking only the first token against an allowlist:&lt;/p&gt;
&lt;p&gt;```go
fields, err := shellquote.Split(value)
...
if !slices.Contains([]string{&amp;#34;bzip2&amp;#34;, &amp;#34;gzip&amp;#34;, &amp;#34;lz4&amp;#34;, &amp;#34;lzma&amp;#34;, &amp;#34;pigz&amp;#34;, &amp;#34;pzstd&amp;#34;, &amp;#34;pxz&amp;#34;, &amp;#34;tar2sqfs&amp;#34;, &amp;#34;xz&amp;#34;, &amp;#34;zstd&amp;#34;}, fields[0]) {
    return fmt.Errorf(&amp;#34;Compression algorithm %q isn&amp;#39;t currently supported&amp;#34;, fields[0])
}
_, err = exec.LookPath(fields[0])
```&lt;/p&gt;
&lt;p&gt;Extra arguments are not rejected. `compressFile()` then prepends `-c` and passes the remaining user-supplied fields to the compressor:&lt;/p&gt;
&lt;p&gt;```go
args := []string{&amp;#34;-c&amp;#34;}
if len(fields) &amp;gt; 1 {
    args = append(args, fields[1:]...)
}
cmd := exec.Command(fields[0], args...)
cmd.Stdin = infile
cmd.Stdout = outfile
```&lt;/p&gt;
&lt;p&gt;With a value like:&lt;/p&gt;
&lt;p&gt;```text
zstd -d -f --pass-through -o /etc/cron.d/incus-zstd-rce -- /var/lib/incus/.../payload
```&lt;/p&gt;
&lt;p&gt;the daemon executes the equivalent of:&lt;/p&gt;
&lt;p&gt;```text
zstd -c -d -f --pass-through -o /etc/cron.d/incus-zstd-rce -- /var/lib/incus/.../payload
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```
python3 poc.py \
	--insecure --url https://remote-incus:8443 \
	--cert ~/.config/incus/client.crt --key ~/.config/incus/client.key \
	--instance c01 \
	--execute --yes-i-understand-this-writes-host-file
```&lt;/p&gt;
&lt;p&gt;The following was generat…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-v6mj-8pf4-hhw4</guid>
    </item>
  </channel>
</rss>
