CVE-2026-41647: Incus: Nil-Pointer Dereference via S3 Bucket Import

Published May 4, 2026
·
Updated

Summary Missing error handling could lead an authenticated Incus user to cause a daemon crash through the import of a truncated storage bucket backup file.

Details It was found that TransferManager.UploadAllFiles iterates over tar entries but only checks for io.EOF from tr.Next(). When tr.Next() returns a non-EOF error, such as unexpected EOF from a truncated archive, the header hdr is nil and the code continues to access hdr.Name, causing a nil-pointer dereference that panics the daemon.

This may allow the Incus daemon to be crashed during S3 bucket restore if a truncated or corrupted backup archive is provided. A panic can occur when a malformed archive produces a non-EOF tar read error after the first entry. Any caller of UploadAllFiles that processes attacker-controlled archive content may be affected.

Affected File: https://github.com/lxc/incus/blob/v6.22.0/…server/storage/s3/transfermanager.go#L127

The tar-iteration loop only checks for EOF:

Affected Code: for { hdr, err := tr.Next() if err == io.EOF { break // End of archive. }

// Skip index.yaml file if hdr.Name == "backup/index.yaml" {

When tr.Next() returns a non-EOF error, hdr is nil. The code does not check for this case and immediately dereferences hdr.Name.

This was confirmed as follows:

Command: go test ./test/fuzz -run='FuzzS3BucketUploadTarParsing/s3nildereftruncatedtar' -count=1 -v

Output: === RUN FuzzS3BucketUploadTarParsing === RUN FuzzS3BucketUploadTarParsing/s3nildereftruncatedtar s3bucketuploadfuzztest.go:82: UploadAllFiles panicked: runtime error: invalid memory address or nil pointer dereference --- FAIL: FuzzS3BucketUploadTarParsing/s3nildereftruncatedtar (0.00s) FAIL

It is recommended to add a non-EOF error check after tr.Next().

Proposed Fix: hdr, err := tr.Next() if err == io.EOF { break }

if err != nil { return fmt.Errorf("Error reading backup archive: %w", err) }

A patch is available at https://github.com/lxc/incus/releases/tag/v7.0.0.

Credits This issue was discovered and reported by the team at 7asecurity (https://7asecurity.com/)

Other sources

Incus is a system container and virtual machine manager. Prior to version 7.0.0, a missing error handling could lead an authenticated Incus user to cause a daemon crash through the import of a truncated storage bucket backup file. This issue has been patched in version 7.0.0.

MITRE

Affected Software

2 affected components
go/github.com/lxc/incus/v6/cmd/incusd<=6.23.0
linuxcontainers Incus<7.0.0

Event History

May 4, 2026
Advisory Published
via GitHub·07:38 PM
Data Sourced
via GitHub·07:38 PM
DescriptionSeverityWeaknessAffected Software
May 7, 2026
CVE Published
via MITRE·01:02 PM
Data Sourced
via MITRE·01:02 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·02:16 PM
RemedyDescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-41647?

CVE-2026-41647 has been classified as a medium severity vulnerability due to its potential to cause a daemon crash.

2

How do I fix CVE-2026-41647?

To fix CVE-2026-41647, ensure that you update to the latest version of the incusd package that addresses the missing error handling.

3

Who is affected by CVE-2026-41647?

CVE-2026-41647 affects users of the Incus daemon version up to 6.23.0 with the ability to import storage bucket backup files.

4

What does CVE-2026-41647 exploit?

CVE-2026-41647 exploits the lack of error handling when importing truncated backup files, leading to a potential crash.

5

Is it safe to use affected versions of Incus after CVE-2026-41647?

Using affected versions of Incus poses a risk because they are vulnerable to crashing when handling malformed backup files.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203