# AIStor Client RELEASE.2026-09-19T15-24-59Z

Released: 2026-09-19

This release teaches `mc diff` and `mc mirror` to compare object checksums:
where both sides report a full-object checksum, objects that match in name,
size and time but differ in content are no longer treated as identical, and
objects whose checksums match are no longer re-copied in active-active mirrors.
It also accepts `ALIAS/BUCKET` directly on `mc admin scanner status`, fixes
`diff` and `mirror` returning nothing for `alias/bucket` on Windows, and clears
three dependency scanner findings against gRPC.

---

## Downloads

### Binary Downloads

| Platform | Architecture | Download                                                            |
| -------- | ------------ | ------------------------------------------------------------------- |
| Linux    | amd64        | [mc](https://dl.min.io/aistor/mc/release/linux-amd64/mc)            |
| Linux    | arm64        | [mc](https://dl.min.io/aistor/mc/release/linux-arm64/mc)            |
| macOS    | arm64        | [mc](https://dl.min.io/aistor/mc/release/darwin-arm64/mc)           |
| macOS    | amd64        | [mc](https://dl.min.io/aistor/mc/release/darwin-amd64/mc)           |
| Windows  | amd64        | [mc.exe](https://dl.min.io/aistor/mc/release/windows-amd64/mc.exe)  |

### FIPS Binaries

| Platform | Architecture | Download                                                            |
| -------- | ------------ | ------------------------------------------------------------------- |
| Linux    | amd64        | [mc.fips](https://dl.min.io/aistor/mc/release/linux-amd64/mc.fips)  |

### Package Downloads

| Format | Architecture | Download                                                                                                                        |
| ------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| DEB    | amd64        | [acli_20260919152459.0.0_amd64.deb](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_amd64.deb)   |
| DEB    | arm64        | [acli_20260919152459.0.0_arm64.deb](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_arm64.deb)   |
| RPM    | amd64        | [acli-20260919152459.0.0-1.x86_64.rpm](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli-20260919152459.0.0-1.x86_64.rpm)   |
| RPM    | arm64        | [acli-20260919152459.0.0-1.aarch64.rpm](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli-20260919152459.0.0-1.aarch64.rpm) |
| APK    | amd64        | [acli_20260919152459.0.0_x86_64.apk](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_x86_64.apk)  |
| APK    | arm64        | [acli_20260919152459.0.0_aarch64.apk](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_aarch64.apk) |

The installed command remains `mcli`. Legacy `mcli.*` package filenames are
symlinked onto the `acli-*` packages, so existing download URLs and upgrade
paths keep working.

<details>
<summary>All published assets, including checksums and signatures</summary>

#### darwin-amd64

- [mc](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc)
- [mc.RELEASE.2026-09-19T15-24-59Z](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z)
- [mc.RELEASE.2026-09-19T15-24-59Z.sha256sum](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.sha256sum)
- [mc.sha256sum](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.asc](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.asc)
- [mc.RELEASE.2026-09-19T15-24-59Z.minisig](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.minisig)
- [mc.asc](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.asc)
- [mc.minisig](https://dl.min.io/aistor/mc/release/darwin-amd64/archive/mc.minisig)

#### darwin-arm64

- [mc](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc)
- [mc.RELEASE.2026-09-19T15-24-59Z](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z)
- [mc.RELEASE.2026-09-19T15-24-59Z.sha256sum](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.sha256sum)
- [mc.sha256sum](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.asc](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.asc)
- [mc.RELEASE.2026-09-19T15-24-59Z.minisig](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.minisig)
- [mc.asc](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.asc)
- [mc.minisig](https://dl.min.io/aistor/mc/release/darwin-arm64/archive/mc.minisig)

#### linux-amd64

- [mc](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc)
- [mc.RELEASE.2026-09-19T15-24-59Z](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z)
- [acli-20260919152459.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli-20260919152459.0.0-1.x86_64.rpm.sha256sum)
- [acli_20260919152459.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_amd64.deb.sha256sum)
- [acli_20260919152459.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_x86_64.apk.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.sha256sum)
- [mc.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.sha256sum)
- [mcli-20260919152459.0.0-1.x86_64.rpm.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli-20260919152459.0.0-1.x86_64.rpm.sha256sum)
- [mcli_20260919152459.0.0_amd64.deb.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli_20260919152459.0.0_amd64.deb.sha256sum)
- [mcli_20260919152459.0.0_x86_64.apk.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli_20260919152459.0.0_x86_64.apk.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.asc](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.asc)
- [mc.RELEASE.2026-09-19T15-24-59Z.minisig](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.minisig)
- [mc.asc](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.asc)
- [mc.minisig](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.minisig)
- [acli-20260919152459.0.0-1.x86_64.rpm](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli-20260919152459.0.0-1.x86_64.rpm)
- [acli.apk](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli.apk)
- [acli.deb](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli.deb)
- [acli.rpm](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli.rpm)
- [acli_20260919152459.0.0_amd64.deb](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_amd64.deb)
- [acli_20260919152459.0.0_x86_64.apk](https://dl.min.io/aistor/mc/release/linux-amd64/archive/acli_20260919152459.0.0_x86_64.apk)
- [mcli-20260919152459.0.0-1.x86_64.rpm](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli-20260919152459.0.0-1.x86_64.rpm)
- [mcli.apk](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli.apk)
- [mcli.deb](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli.deb)
- [mcli.rpm](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli.rpm)
- [mcli_20260919152459.0.0_amd64.deb](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli_20260919152459.0.0_amd64.deb)
- [mcli_20260919152459.0.0_x86_64.apk](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mcli_20260919152459.0.0_x86_64.apk)

#### linux-amd64 (FIPS)

- [mc.RELEASE.2026-09-19T15-24-59Z.fips](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.fips)
- [mc.fips](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.fips)
- [mc.RELEASE.2026-09-19T15-24-59Z.fips.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.fips.sha256sum)
- [mc.fips.sha256sum](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.fips.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.fips.asc](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.fips.asc)
- [mc.RELEASE.2026-09-19T15-24-59Z.fips.minisig](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.RELEASE.2026-09-19T15-24-59Z.fips.minisig)
- [mc.fips.asc](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.fips.asc)
- [mc.fips.minisig](https://dl.min.io/aistor/mc/release/linux-amd64/archive/mc.fips.minisig)

#### linux-arm64

- [mc](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc)
- [mc.RELEASE.2026-09-19T15-24-59Z](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z)
- [acli-20260919152459.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli-20260919152459.0.0-1.aarch64.rpm.sha256sum)
- [acli_20260919152459.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_aarch64.apk.sha256sum)
- [acli_20260919152459.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_arm64.deb.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.sha256sum)
- [mc.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.sha256sum)
- [mcli-20260919152459.0.0-1.aarch64.rpm.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli-20260919152459.0.0-1.aarch64.rpm.sha256sum)
- [mcli_20260919152459.0.0_aarch64.apk.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli_20260919152459.0.0_aarch64.apk.sha256sum)
- [mcli_20260919152459.0.0_arm64.deb.sha256sum](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli_20260919152459.0.0_arm64.deb.sha256sum)
- [mc.RELEASE.2026-09-19T15-24-59Z.asc](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.asc)
- [mc.RELEASE.2026-09-19T15-24-59Z.minisig](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.RELEASE.2026-09-19T15-24-59Z.minisig)
- [mc.asc](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.asc)
- [mc.minisig](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mc.minisig)
- [acli-20260919152459.0.0-1.aarch64.rpm](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli-20260919152459.0.0-1.aarch64.rpm)
- [acli.apk](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli.apk)
- [acli.deb](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli.deb)
- [acli.rpm](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli.rpm)
- [acli_20260919152459.0.0_aarch64.apk](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_aarch64.apk)
- [acli_20260919152459.0.0_arm64.deb](https://dl.min.io/aistor/mc/release/linux-arm64/archive/acli_20260919152459.0.0_arm64.deb)
- [mcli-20260919152459.0.0-1.aarch64.rpm](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli-20260919152459.0.0-1.aarch64.rpm)
- [mcli.apk](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli.apk)
- [mcli.deb](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli.deb)
- [mcli.rpm](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli.rpm)
- [mcli_20260919152459.0.0_aarch64.apk](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli_20260919152459.0.0_aarch64.apk)
- [mcli_20260919152459.0.0_arm64.deb](https://dl.min.io/aistor/mc/release/linux-arm64/archive/mcli_20260919152459.0.0_arm64.deb)

#### windows-amd64

- [mc.exe](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe)
- [mc.exe.RELEASE.2026-09-19T15-24-59Z](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.RELEASE.2026-09-19T15-24-59Z)
- [mc.exe.RELEASE.2026-09-19T15-24-59Z.sha256sum](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.RELEASE.2026-09-19T15-24-59Z.sha256sum)
- [mc.exe.sha256sum](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.sha256sum)
- [mc.exe.RELEASE.2026-09-19T15-24-59Z.asc](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.RELEASE.2026-09-19T15-24-59Z.asc)
- [mc.exe.RELEASE.2026-09-19T15-24-59Z.minisig](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.RELEASE.2026-09-19T15-24-59Z.minisig)
- [mc.exe.asc](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.asc)
- [mc.exe.minisig](https://dl.min.io/aistor/mc/release/windows-amd64/archive/mc.exe.minisig)

</details>

### Container Images

```bash
# Standard
docker pull quay.io/minio/aistor/mc:RELEASE.2026-09-19T15-24-59Z
podman pull quay.io/minio/aistor/mc:RELEASE.2026-09-19T15-24-59Z

# FIPS
docker pull quay.io/minio/aistor/mc:RELEASE.2026-09-19T15-24-59Z.fips
podman pull quay.io/minio/aistor/mc:RELEASE.2026-09-19T15-24-59Z.fips
```

### Homebrew (macOS/Linux)

```bash
brew install minio/stable/mc
```

---

## Security Updates

- **`google.golang.org/grpc` upgraded from v1.82.1 to v1.83.2**, clearing three
  dependency scanner findings: [GO-2026-6348](https://pkg.go.dev/vuln/GO-2026-6348)
  (HTTP/2 DATA frame memory exhaustion),
  [GO-2026-6441](https://pkg.go.dev/vuln/GO-2026-6441) (xDS RBAC header match
  bypass) and [GO-2026-6443](https://pkg.go.dev/vuln/GO-2026-6443) (panic on a
  missing authority/Host header). gRPC is an indirect dependency of the client;
  v1.83.2 is the lowest release that fixes all three (#645).

---

## New Features

### Checksum comparison in `diff` and `mirror`

- **`mc diff` and `mc mirror` now compare object checksums** when both sides
  report a checksum of the same algorithm. Neither command reads object
  contents — the comparison uses the checksums the server already reports.
  Equal checksums always establish equal content. Unequal
  checksums establish a difference only for full-object checksums, because a
  composite checksum is a hash of part hashes and so changes when only the part
  layout changes (#640).

- **`mc diff` reports a new `checksum` difference reason**, shown with the same
  `!` marker as a size or metadata difference. The `!` legend now reads "newer
  object is in source, or the objects differ in size or checksum" (#640).

- **`mc mirror` re-copies objects that differ only in checksum**, gated by
  `--overwrite` exactly as a size difference is. In active-active mode the
  source copy must also be the newer one, so that neither direction lets an
  older write win. Operationally: the first mirror run after upgrading may
  transfer objects that earlier runs considered identical because their name,
  size and modification time matched (#640).

---

## Bug Fixes

### Transfers and comparison

- **Fixed `mc diff` and `mc mirror` listing nothing for an `alias/bucket`
  argument on Windows.** The trailing path separator was appended before the
  alias was expanded, so an unexpanded `alias/bucket` took the Windows
  backslash separator and became `alias/bucket/\`, which expanded to a bucket
  URL ending in `//`. The separator is now added after alias expansion (#640).

- **Fixed only the last checksum being retained for an object.** Each algorithm
  overwrote the previous one instead of being added, so an object reporting
  more than one checksum kept just one of them (#640).

- **Fixed `--json` output failing on transfers that completed within the
  clock's granularity.** Zero measured elapsed time produced an infinite
  transfer speed, which JSON encoding rejects (#640).

---

## Improvements

- **`mc admin scanner status` accepts a bucket as a path argument.** Run
  `mc admin scanner status myminio/mybucket` to get scan statistics for one
  bucket, matching how every other command addresses a bucket. The `--bucket`
  flag is now hidden but still accepted, so existing scripts keep working
  (#525).

- **Active-active mirrors skip objects whose checksums match.** Previously a
  newer source modification time was enough to re-copy an object in
  `mc mirror --active-active`; when both sides report a matching checksum, the
  object is now left alone. This removes redundant transfers from active-active
  setups where metadata timestamps drift but content does not (#640).

- **More checksum algorithms are surfaced for objects**, adding MD5, SHA512,
  XXHASH64, XXHASH3 and XXHASH128 alongside the existing CRC32, CRC32C, SHA1,
  SHA256 and CRC64NVME, along with whether the checksum is full-object or
  composite (#640).

- **`mc diff` and `mc mirror` now always request object metadata when
  listing**, since checksums are only returned by a metadata listing. Whether
  metadata itself is compared is unchanged and still governed by the existing
  flags (#640).

---

## Security & Compliance

### Software Bill of Materials (SBOM)

This release includes SBOM documentation in multiple formats:

- `sbom-RELEASE.2026-09-19T15-24-59Z.spdx.json` — standard SBOM format
- `sbom-RELEASE.2026-09-19T15-24-59Z.cyclonedx.json` — security scanner compatible
- `go-modules-RELEASE.2026-09-19T15-24-59Z.txt` — human-readable dependency list

All three are attached to this release as downloadable assets.

SBOM files document all direct and transitive dependencies for security
auditing and compliance requirements.

---

## Upgrade Instructions

1. Download the binary or package for your platform from the Downloads section
   above.
2. Replace your existing binary, or install the package over the previous one.
3. Verify the version: `mc --version`

Existing alias configurations are preserved.

### New Command Options

No new flags in this release. `mc admin scanner status` gains a positional
`ALIAS/BUCKET` form; see Improvements.

### Support

For enterprise support:

- SUBNET Support: https://subnet.min.io
- Documentation: https://docs.min.io/enterprise/aistor-object-store/reference/cli/
