---
id: CVE-2021-29482
aliases:
  - GHSA-25xm-hr59-7c27
  - GO-2020-0016
title: github.com/ulikunitz/xz fixes readUvarint Denial of Service (DoS)
summary: github.com/ulikunitz/xz fixes readUvarint Denial of Service (DoS)
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
vendor: ulikunitz
product: github.com/ulikunitz/xz
ecosystem: go
affected:
  - github.com/ulikunitz/xz < 0.5.8
patched:
  - github.com/ulikunitz/xz 0.5.8
published: '2021-05-25'
updated: '2026-07-08'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-25xm-hr59-7c27'
references:
  - url: 'https://github.com/ulikunitz/xz/security/advisories/GHSA-25xm-hr59-7c27'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2021-29482'
  - url: 'https://github.com/ulikunitz/xz/issues/35'
  - url: >-
      https://github.com/ulikunitz/xz/commit/69c6093c7b2397b923acf82cb378f55ab2652b9b
  - url: 'https://pkg.go.dev/vuln/GO-2020-0016'
tags:
  - osv
  - go
epss: 0.01438
epssPercentile: 0.72017
ingestedAt: '2026-07-09T18:56:35.425Z'
---

## Overview

### Impact

xz is a compression and decompression library focusing on the xz format completely written in Go. The function readUvarint used to read the xz container format may not terminate a loop provide malicous input.

### Patches

The problem has been fixed in release v0.5.8.

### Workarounds

Limit the size of the compressed file input to a reasonable size for your use case.

### References

The standard library had recently the same issue and got the [CVE-2020-16845](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-16845) allocated.

### For more information
If you have any questions or comments about this advisory:
* Open an issue in [xz](https://github.com/ulikunitz/xz/issues).

## Affected packages

- `github.com/ulikunitz/xz < 0.5.8`

## Remediation

Upgrade to a patched release:

- `github.com/ulikunitz/xz 0.5.8`
