Upstream update available: containerd 2.1.4 → 2.2.3 #2

Open
opened 2026-04-28 00:51:48 +03:00 by sbelikov · 0 comments
Owner

Upstream update available: containerd 2.1.42.2.3

Package

  • Package: containerd
  • RPM name: containerd
  • Branch: niceos-5.2
  • Current EVR: 2.1.4-1
  • Update class: minor
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: github-upstream

Upstream

Signals

  • Security-relevant keywords detected: True
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/high, security-release, update/minor, upstream-update, upstream/github

NiceSOFT AI preliminary analysis

1. Краткий вывод

Upstream-релиз containerd v2.2.3 содержит исправление критической уязвимости (CVE-2026-35469) в зависимости spdystream, а также обновления зависимостей Go и runc. Обновление классифицировано как minor, но наличие security-патча и смена мажорной версии Go требуют тщательной проверки совместимости перед внедрением.

2. Риск для НАЙС.ОС

medium. Наличие подтверждённого security-патча (CVE) делает обновление обязательным для безопасности, однако обновление Go runtime до версий 1.25.x/1.26.x и изменение логики работы с симлинками (absolute symlinks) могут повлиять на поведение контейнеров в специфических окружениях (например, NixOS-style или системы с особыми правами доступа), требуя тестирования.

3. Security/CVE

Во входных данных зафиксирована одна уязвимость:

  • CVE-2026-35469: Локация в библиотеке github.com/moby/spdystream (версия обновлена с v0.5.0 до v0.5.1).
  • Источник: GitHub Advisory GHSA-pc3f-x583-g7j2.
  • Статус: Исправлено в текущем релизе.

4. ABI/API риск

В release notes указаны изменения, потенциально влияющие на ABI/API:

  • Изменена обработка абсолютных симлинков при поиске пользователя в rootfs (fix(oci): handle absolute symlinks...). Это может изменить поведение контейнеров, ожидающих относительные пути или работающих в нестандартных файловых системах.
  • Обновление runc до v1.3.5 внутри containerd.
  • Обновление Go runtime до версий 1.25.9 и 1.26.2 (коммит update to Go 1.25.9, 1.26.2). Смена мажорной версии компилятора/стандартной библиотеки может теоретически повлиять на бинарные интерфейсы, если они зависят от внутренних структур Go, хотя для внешних API это менее вероятно.
  • Вердикт: Необходим ручной ABI/API анализ бинарных артефактов и проверка совместимости с локальными патчами, так как данные о бинарной совместимости в тексте отсутствуют.

5. Риск для RPM-сборки

  • BuildRequires: Возможно потребуется обновление пакета golang или связанных инструментов сборки, если сборка зависит от конкретных версий Go, указанных в upstream (1.25/1.26).
  • %check: Тесты могут провалиться из-за изменений в обработке симлинков или новых требований Go. В логах коммитов есть упоминание пропуска теста Skip TestExportAndImportMultiLayer on s390x, что указывает на возможные проблемы с архитектурой s390x.
  • Зависимости: Обновление klauspost/compress и hcsshim (для Windows подсистем, если применимо) может потребовать пересборки.

6. Проверки мейнтейнера

  1. Проверить наличие и актуальность патча для CVE-2026-35469 в ветке сборки.
  2. Провести тестирование запуска контейнеров с абсолютными симлинками в /rootfs и проверкой групп пользователей (/etc/group).
  3. Проверить работу на архитектуре s390x (учитывая пропуск теста в upstream).
  4. Убедиться, что glibc на целевых системах соответствует требованиям динамической линковки (glibc 2.35+), если используется динамическая версия бинарника.
  5. Проверить совместимость обновленного runc (v1.3.5) с локальными конфигурациями CRI.

7. Рекомендация

update candidate

8. Основание рекомендации

Обновление является кандидатом, так как содержит критическое исправление безопасности (CVE), которое необходимо применить. Несмотря на риски, связанные с обновлением Go и логикой симлинков, отсутствие блокирующих фактов (policy_blocked: False) и наличие детальных changelog позволяют рекомендовать обновление после выполнения стандартного цикла тестирования (candidate), а не блокировать его полностью. Автоматическое обновление не рекомендуется из-за смены мажорной версии Go и security-critical статуса.

Upstream release notes / description

Welcome to the v2.2.3 release of containerd!

The third patch release for containerd 2.2 contains various fixes
and updates including a security patch.

Security Updates

Highlights

Container Runtime Interface (CRI)

  • Preserve cgroup mount options for privileged containers (#13120)
  • Ensure UpdatePodSandbox returns Unimplemented instead of a generic error (#13023)

Go client

  • Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 (#13015)

Image Distribution

  • Enable mount manager in diff walking to fix layer extraction errors with some snapshotters (e.g., EROFS) (#13198)
  • Apply hardening to prevent TOCTOU race during tar extraction (#12971)

Runtime

  • Restore support for client-mounted roots in Windows containers using process isolation (#13195)
  • Update runc to v1.3.5 (#13061)
  • Apply absolute symlink resolution to /etc/group in OCI spec to fix lookups on NixOS-style systems (#13019)
  • Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 (#13015)

Snapshotters

  • Fix bug that caused whiteouts to be ignored when parallel unpack was used (#13125)

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

Contributors

  • Samuel Karp
  • Sebastiaan van Stijn
  • Maksym Pavlenko
  • Chris Henzie
  • Derek McGowan
  • Paulo Oliveira
  • Henry Wang
  • Phil Estes
  • Wei Fu
  • Akihiro Suda
  • Gao Xiang
  • Ricardo Branco
  • Shachar Tal

Changes

40 commits

  • Prepare release notes for v2.2.3 (#13224)
  • update github.com/moby/spdystream v0.5.1 (#13217)
    • 31bd34a06 update github.com/moby/spdystream v0.5.1
  • vendor: github.com/klauspost/compress v1.18.5 (#13197)
    • 1336f6c45 vendor: github.com/klauspost/compress v1.18.5
  • diff/walking: enable mount manager (#13198)
    • 409f75be8 diff/walking: enable mount manager
  • update runhcs to v0.14.1 (#13195)
  • vendor: github.com/Microsoft/hcsshim v0.14.1 (#13196)
    • 8bd1b74e5 vendor: github.com/Microsoft/hcsshim v0.14.1
    • c6b0be8e1 vendor: github.com/Microsoft/hcsshim v0.14.0
  • update to Go 1.25.9, 1.26.2 (#13190)
  • Skip TestExportAndImportMultiLayer on s390x (#13154)
    • be554f478 Skip TestExportAndImportMultiLayer on s390x
  • Tweak mount info for overlayfs in case of parallel unpack (#13125)
    • 660de195b Tweak mount info for overlayfs in case of parallel unpack
    • bc9274a4b Add integration test for issue 13030
  • Preserve cgroup mount options for privileged containers (#13120)
    • c387890b5 Add integration test for privileged container cgroup mounts
    • 047a335a6 Forward RUNC_FLAVOR env var down to integration tests
    • 9b2d72ee0 Preserve host cgroup mount options for privileged containers
    • 5b66cd6a0 Move cgroup namespace placement higher in spec builder
  • update runc binary to v1.3.5 (#13061)
    • 584205c2f [release/2.2] update runc binary to v1.3.5
  • Fix vagrant on CI (#13066)

...[truncated 2537 chars]

NiceOS maintainer checklist

  • Confirm that the detected version is a stable upstream release.
  • Check upstream changelog for security fixes, ABI/API changes and build-system changes.
  • Check ABI/API compatibility and reverse dependencies.
  • Download source into NiceOS lookaside storage.
  • Update Version and related fields in SPECS/*.spec only if policy allows it.
  • Regenerate SOURCES/sources.lock.json, manifests, metadata and SBOM.
  • Build SRPM/RPM in a clean NiceOS buildroot.
  • Run package smoke tests.
  • Link PR/build logs and close this issue after update or triage.

Bot metadata

  • Tool: niceos_upstream_monitor.py 1.5
  • Generated at: 2026-04-29T23:08:18Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:containerd:2.2.3 --> <!-- niceos-upstream-monitor:package=containerd --> <!-- niceos-upstream-monitor:current=2.1.4 --> <!-- niceos-upstream-monitor:latest=2.2.3 --> # Upstream update available: `containerd` `2.1.4` → `2.2.3` ## Package - Package: `containerd` - RPM name: `containerd` - Branch: `niceos-5.2` - Current EVR: `2.1.4-1` - Update class: `minor` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `github-upstream` ## Upstream - Upstream type: `github` - Upstream project: `containerd/containerd` - Upstream URL: https://github.com/containerd/containerd - Detected version: `2.2.3` - Tag/release: `v2.2.3` - Source: `github_release_latest` - Published: `2026-04-14T17:38:30Z` - Release URL: https://github.com/containerd/containerd/releases/tag/v2.2.3 - Source URL: https://api.github.com/repos/containerd/containerd/tarball/v2.2.3 - Pre-release: `False` ## Signals - Security-relevant keywords detected: `True` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/high, security-release, update/minor, upstream-update, upstream/github` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Upstream-релиз containerd v2.2.3 содержит исправление критической уязвимости (CVE-2026-35469) в зависимости spdystream, а также обновления зависимостей Go и runc. Обновление классифицировано как minor, но наличие security-патча и смена мажорной версии Go требуют тщательной проверки совместимости перед внедрением. ### 2. Риск для НАЙС.ОС **medium**. Наличие подтверждённого security-патча (CVE) делает обновление обязательным для безопасности, однако обновление Go runtime до версий 1.25.x/1.26.x и изменение логики работы с симлинками (absolute symlinks) могут повлиять на поведение контейнеров в специфических окружениях (например, NixOS-style или системы с особыми правами доступа), требуя тестирования. ### 3. Security/CVE Во входных данных зафиксирована одна уязвимость: * **CVE-2026-35469**: Локация в библиотеке `github.com/moby/spdystream` (версия обновлена с v0.5.0 до v0.5.1). * Источник: GitHub Advisory GHSA-pc3f-x583-g7j2. * Статус: Исправлено в текущем релизе. ### 4. ABI/API риск В release notes указаны изменения, потенциально влияющие на ABI/API: * Изменена обработка абсолютных симлинков при поиске пользователя в rootfs (`fix(oci): handle absolute symlinks...`). Это может изменить поведение контейнеров, ожидающих относительные пути или работающих в нестандартных файловых системах. * Обновление `runc` до v1.3.5 внутри containerd. * Обновление Go runtime до версий 1.25.9 и 1.26.2 (коммит `update to Go 1.25.9, 1.26.2`). Смена мажорной версии компилятора/стандартной библиотеки может теоретически повлиять на бинарные интерфейсы, если они зависят от внутренних структур Go, хотя для внешних API это менее вероятно. * **Вердикт**: Необходим ручной ABI/API анализ бинарных артефактов и проверка совместимости с локальными патчами, так как данные о бинарной совместимости в тексте отсутствуют. ### 5. Риск для RPM-сборки * **BuildRequires**: Возможно потребуется обновление пакета `golang` или связанных инструментов сборки, если сборка зависит от конкретных версий Go, указанных в upstream (1.25/1.26). * **%check**: Тесты могут провалиться из-за изменений в обработке симлинков или новых требований Go. В логах коммитов есть упоминание пропуска теста `Skip TestExportAndImportMultiLayer on s390x`, что указывает на возможные проблемы с архитектурой s390x. * **Зависимости**: Обновление `klauspost/compress` и `hcsshim` (для Windows подсистем, если применимо) может потребовать пересборки. ### 6. Проверки мейнтейнера 1. Проверить наличие и актуальность патча для CVE-2026-35469 в ветке сборки. 2. Провести тестирование запуска контейнеров с абсолютными симлинками в `/rootfs` и проверкой групп пользователей (`/etc/group`). 3. Проверить работу на архитектуре `s390x` (учитывая пропуск теста в upstream). 4. Убедиться, что `glibc` на целевых системах соответствует требованиям динамической линковки (glibc 2.35+), если используется динамическая версия бинарника. 5. Проверить совместимость обновленного `runc` (v1.3.5) с локальными конфигурациями CRI. ### 7. Рекомендация **update candidate** ### 8. Основание рекомендации Обновление является кандидатом, так как содержит критическое исправление безопасности (CVE), которое необходимо применить. Несмотря на риски, связанные с обновлением Go и логикой симлинков, отсутствие блокирующих фактов (policy_blocked: False) и наличие детальных changelog позволяют рекомендовать обновление после выполнения стандартного цикла тестирования (candidate), а не блокировать его полностью. Автоматическое обновление не рекомендуется из-за смены мажорной версии Go и security-critical статуса. ## Upstream release notes / description Welcome to the v2.2.3 release of containerd! The third patch release for containerd 2.2 contains various fixes and updates including a security patch. ### Security Updates * **spdystream** * [**CVE-2026-35469**](https://github.com/moby/spdystream/security/advisories/GHSA-pc3f-x583-g7j2) ### Highlights #### Container Runtime Interface (CRI) * Preserve cgroup mount options for privileged containers ([#13120](https://github.com/containerd/containerd/pull/13120)) * Ensure UpdatePodSandbox returns Unimplemented instead of a generic error ([#13023](https://github.com/containerd/containerd/pull/13023)) #### Go client * Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 ([#13015](https://github.com/containerd/containerd/pull/13015)) #### Image Distribution * Enable mount manager in diff walking to fix layer extraction errors with some snapshotters (e.g., EROFS) ([#13198](https://github.com/containerd/containerd/pull/13198)) * Apply hardening to prevent TOCTOU race during tar extraction ([#12971](https://github.com/containerd/containerd/pull/12971)) #### Runtime * Restore support for client-mounted roots in Windows containers using process isolation ([#13195](https://github.com/containerd/containerd/pull/13195)) * Update runc to v1.3.5 ([#13061](https://github.com/containerd/containerd/pull/13061)) * Apply absolute symlink resolution to /etc/group in OCI spec to fix lookups on NixOS-style systems ([#13019](https://github.com/containerd/containerd/pull/13019)) * Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 ([#13015](https://github.com/containerd/containerd/pull/13015)) #### Snapshotters * Fix bug that caused whiteouts to be ignored when parallel unpack was used ([#13125](https://github.com/containerd/containerd/pull/13125)) Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. ### Contributors * Samuel Karp * Sebastiaan van Stijn * Maksym Pavlenko * Chris Henzie * Derek McGowan * Paulo Oliveira * Henry Wang * Phil Estes * Wei Fu * Akihiro Suda * Gao Xiang * Ricardo Branco * Shachar Tal ### Changes <details><summary>40 commits</summary> <p> * Prepare release notes for v2.2.3 ([#13224](https://github.com/containerd/containerd/pull/13224)) * [`8a0f4ed5d`](https://github.com/containerd/containerd/commit/8a0f4ed5d360171d62ca625bc93f393a36241189) Prepare release notes for v2.2.3 * update github.com/moby/spdystream v0.5.1 ([#13217](https://github.com/containerd/containerd/pull/13217)) * [`31bd34a06`](https://github.com/containerd/containerd/commit/31bd34a064dc7136413efde09b99a2bdd14dabe9) update github.com/moby/spdystream v0.5.1 * vendor: github.com/klauspost/compress v1.18.5 ([#13197](https://github.com/containerd/containerd/pull/13197)) * [`1336f6c45`](https://github.com/containerd/containerd/commit/1336f6c45d25c674963e5cb86ee1ea522e6f513e) vendor: github.com/klauspost/compress v1.18.5 * diff/walking: enable mount manager ([#13198](https://github.com/containerd/containerd/pull/13198)) * [`409f75be8`](https://github.com/containerd/containerd/commit/409f75be8791d53e2e4e96ab060d8db56fd46b1e) diff/walking: enable mount manager * update runhcs to v0.14.1 ([#13195](https://github.com/containerd/containerd/pull/13195)) * [`3f33146c1`](https://github.com/containerd/containerd/commit/3f33146c1c199f1d9479d791b105197cebf7b1bc) update runhcs to v0.14.1 * vendor: github.com/Microsoft/hcsshim v0.14.1 ([#13196](https://github.com/containerd/containerd/pull/13196)) * [`8bd1b74e5`](https://github.com/containerd/containerd/commit/8bd1b74e5dbcd6aad671666e13861a6c8a7bf13c) vendor: github.com/Microsoft/hcsshim v0.14.1 * [`c6b0be8e1`](https://github.com/containerd/containerd/commit/c6b0be8e1317166d53a05c308db3223293f36f85) vendor: github.com/Microsoft/hcsshim v0.14.0 * update to Go 1.25.9, 1.26.2 ([#13190](https://github.com/containerd/containerd/pull/13190)) * [`2ecde8cfe`](https://github.com/containerd/containerd/commit/2ecde8cfe12320fefd05e08c83e413a4046bb72c) update to Go 1.25.9, 1.26.2 * Skip TestExportAndImportMultiLayer on s390x ([#13154](https://github.com/containerd/containerd/pull/13154)) * [`be554f478`](https://github.com/containerd/containerd/commit/be554f478ceb629d3dc3fbd5331b9167cc7a4870) Skip TestExportAndImportMultiLayer on s390x * Tweak mount info for overlayfs in case of parallel unpack ([#13125](https://github.com/containerd/containerd/pull/13125)) * [`660de195b`](https://github.com/containerd/containerd/commit/660de195b07db576cbe8aab53a4b6e87cc931347) Tweak mount info for overlayfs in case of parallel unpack * [`bc9274a4b`](https://github.com/containerd/containerd/commit/bc9274a4b05342ba1096c73ce6ce8a505ce243ce) Add integration test for issue 13030 * Preserve cgroup mount options for privileged containers ([#13120](https://github.com/containerd/containerd/pull/13120)) * [`c387890b5`](https://github.com/containerd/containerd/commit/c387890b582324c4cf11e940efe4268a21524ed6) Add integration test for privileged container cgroup mounts * [`047a335a6`](https://github.com/containerd/containerd/commit/047a335a69d66e673ddc155fed779152e00a5652) Forward RUNC_FLAVOR env var down to integration tests * [`9b2d72ee0`](https://github.com/containerd/containerd/commit/9b2d72ee03b548c8344cd243670e06f863a701a2) Preserve host cgroup mount options for privileged containers * [`5b66cd6a0`](https://github.com/containerd/containerd/commit/5b66cd6a0902b7927eeb8107bb5a30d78436eaa3) Move cgroup namespace placement higher in spec builder * update runc binary to v1.3.5 ([#13061](https://github.com/containerd/containerd/pull/13061)) * [`584205c2f`](https://github.com/containerd/containerd/commit/584205c2fa986334d22b840293b1060b10ab724e) [release/2.2] update runc binary to v1.3.5 * Fix vagrant on CI ([#13066](https://github.com/containerd/containerd/pull/13066)) * [`77c6886df`](https://github.com/containerd/containerd/commit/77c6886df6510bf1ac9326436e7b3 ...[truncated 2537 chars] ## NiceOS maintainer checklist - [ ] Confirm that the detected version is a stable upstream release. - [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes. - [ ] Check ABI/API compatibility and reverse dependencies. - [ ] Download source into NiceOS lookaside storage. - [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it. - [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM. - [ ] Build SRPM/RPM in a clean NiceOS buildroot. - [ ] Run package smoke tests. - [ ] Link PR/build logs and close this issue after update or triage. ## Bot metadata - Tool: `niceos_upstream_monitor.py 1.5` - Generated at: `2026-04-29T23:08:18Z`
Sign in to join this conversation.
No description provided.