Skip to content

fix(cve): CVE-2026-18374 - [PATCH] libio: Fix CVE-2026-18374 heap buffer overflow in ccs= handling - #49

Merged
Zeno-sole merged 10 commits into
masterfrom
fix-cve/CVE-2026-18374
Sep 20, 2026
Merged

Zeno-sole merged 10 commits into
masterfrom
fix-cve/CVE-2026-18374

Conversation

@deepin-ci-robot

@deepin-ci-robot deepin-ci-robot commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

CVE: CVE-2026-18374 (medium) - 向 GNU C Library (glibc) 2.45 或更早版本的 fopen 函数的 ,ccs= 语法扩展传递一个实际上为空的字符串,当模式字符串输入由攻击者控制时,可能导致堆缓冲区溢出。CVSS 分数 4.9。
Upstream: https://sourceware.org/git/glibc.git/commit/?id=f806c45178

Co-authored-by: hudeng hudeng@deepin.org
Generated-By: qwen3.6-35b


CVE: CVE-2026-19542 - 兼容性适配修改:无额外修改,CVE patch 已正确应用

Co-authored-by: hudeng hudeng@deepin.org
Generated-By: qwen3.6-35b


CVE: CVE-2026-80489 (unknown) - Converting crafted EUC_JISX0213 input to UCS-4 or the internal wide character encoding, for example with iconv, in the GNU C Library version 2.3 to 2.44 may result in the converter making no progress, causing the calling application to hang.
Upstream: https://sourceware.org/git/glibc.git/commit/?id=4dafa087ff5fe7df45bd37dc727e988da6b8c935

Co-authored-by: hudeng hudeng@deepin.org
Generated-By: qwen3.6-35b


CVE: CVE-2026-6368 (low) - posix: Fix wordexp WRDE_APPEND to preserve state on non-NOSPACE errors (BZ 34090, CVE-2026-6368)
Upstream: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=dfc8ef388ef7856f318ade7dec501f92ce54f9e3

Co-authored-by: hudeng hudeng@deepin.org
Generated-By: qwen3.6-35b


CVE: CVE-2026-8674 (medium) - resolv: Fix assertion failure on search list truncation [BZ 31026, CVE-2026-8674]
Upstream: https://sourceware.org/git/?p=glibc.git;a=commit;h=506ea57086bfb9ce3daff1c14246a1cb532aba0a

Co-authored-by: hudeng hudeng@deepin.org
Generated-By: qwen3.6-35b

…fer overflow in ccs= handling

CVE: CVE-2026-18374 (medium) - 向 GNU C Library (glibc) 2.45 或更早版本的 fopen 函数的 ,ccs= 语法扩展传递一个实际上为空的字符串,当模式字符串输入由攻击者控制时,可能导致堆缓冲区溢出。CVSS 分数 4.9。
Upstream: https://sourceware.org/git/glibc.git/commit/?id=f806c45178

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
@deepin-ci-robot

Copy link
Copy Markdown
Contributor Author

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign xzl01 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

TAG Bot

TAG: 2.38-6deepin31
EXISTED: no
DISTRIBUTION: unstable

deepin-ci-robot and others added 2 commits September 7, 2026 10:28
… (bug 34510, CVE-2026-19499)

CVE: CVE-2026-19499 (unknown) - glibc 的 strfmon 和 strfmon_l 函数在处理右对齐宽度填充时存在缓冲区溢出漏洞。当应用程序使用特定缓冲区大小的右对齐宽度填充时,会导致越界写入。这是因为在内部内存操作中使用了不正确的长度,导致数据被写入超出预期缓冲区。
Upstream: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=b090cf226ff65b913e41536f1f573f500855615c

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
…ending character reset (CVE-20

CVE: CVE-2026-77117 (unknown) - 在 glibc 中发现了一个缺陷。远程攻击者可以通过在 SHIFT_JISX0213 到 UCS-4 文本转换期间提供特别构造的输入来利用此漏洞。这种构造的输入会导致应用程序反复发出缓冲的代码点而不消耗进一步的输入,导致持续的重试消耗,最终可能导致拒绝服务(DoS)。
Upstream: https://sourceware.org/git/glibc.git/commit/?id=68d94bbe50b7577d48998107d632ef3a0df050e3

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
@Zeno-sole

Copy link
Copy Markdown
Contributor

/test ai-review

@deepin-ci-robot

Copy link
Copy Markdown
Contributor Author

deepin pr auto review

🤖 AI 代码审查报告

总体评分: 99 分 (通过阈值: 70分)

Pass


📊 总体评价

项目 结果
审查结论 代码审查通过
评分详情 总体评分 99 分,大于 70 分通过阈值。本次提交为 glibc 安全补丁打包,修复了 3 个 CVE 漏洞(CVE-2026-18374 堆缓冲区溢出、CVE-2026-19499 strfmon 缓冲区溢出、CVE-2026-77117 SHIFT_JISX0213 解码 DoS),补丁来源上游官方,代码质量高,未引入新的安全漏洞。

🔍 详细分析

1. 语法逻辑 ✅

评价: 优秀 ✅ 通过

潜在问题:
✅ 未发现明显问题

建议: 语法正确,逻辑清晰,三个 CVE 修复补丁均来自上游官方,逻辑正确无缺陷


2. 代码质量 ✅

评价: 优秀 ✅ 通过

潜在问题:

  1. debian/patches/CVE-2026-19499.patch:549 - strfmon 修复中缺少简要注释说明 written_width 需在 __printf_buffer_pad 调用前保存的原因

建议: 代码结构清晰,注释完整。建议在 CVE-2026-19499 补丁中添加简要注释说明 written_width 需在 padding 前保存的原因


3. 代码性能 ✅

评价: 优秀 ✅ 通过

潜在问题:
✅ 未发现明显问题

建议: 性能良好,资源使用合理,三个补丁均仅增加极小开销,无性能瓶颈


4. 代码安全 🔒

评价: 优秀 ✅ 通过

🔐 发现 0 个安全漏洞

安全漏洞详情:
✅ 未发现安全漏洞

建议: 存在0个安全漏洞。本次提交修复了 3 个已知 CVE 漏洞,未引入新的安全问题。补丁来源上游官方,修复方案正确


💡 改进建议代码示例

/* CVE-2026-19499 建议添加注释 */
/* Save written_width before padding, as __printf_buffer_pad
   advances buf->write_ptr, making the original expression
   buf->write_ptr - startp incorrect for the memmove length.  */
size_t written_width = buf->write_ptr - startp;
size_t pad_width = width - written_width;
__printf_buffer_pad (buf, ' ', pad_width);
if (__printf_buffer_has_failed (buf))
  /* Implies length check.  */
  return;
if (!left)
  {
    memmove (startp + pad_width, startp, written_width);
    memset (startp, ' ', pad_width);
  }

本报告由 AI 代码审查工具自动生成

@Zeno-sole

Copy link
Copy Markdown
Contributor

/integrate

@github-actions

Copy link
Copy Markdown

AutoIntegrationPr Bot
auto integrate with pr url: deepin-community/Repository-Integration#4563
PrNumber: 4563
PrBranch: auto-integration-34932376561

Backport upstream commit d12b017cddfeb9fe9920ba054ae3dfcb8e9238b8
("Linux: Only define OPEN_TREE_* macros in <sys/mount.h> if undefined",
bug 33921) to glibc 2.38.

<sys/mount.h> conditionally includes the kernel UAPI <linux/mount.h>.
On the x86_64 build host that header defines OPEN_TREE_CLONE as
(1 << 0), so the unconditional redefinition as 1 aborts the build with
-Werror while compiling sysdeps/unix/sysv/linux/umount2.c:

  ../sysdeps/unix/sysv/linux/sys/mount.h:265: error: "OPEN_TREE_CLONE" redefined [-Werror]

Guard both OPEN_TREE_CLONE and OPEN_TREE_CLOEXEC so the kernel header
values are preserved when they are available.

Log: Fix OPEN_TREE_CLONE redefinition build failure on x86_64

Influence:
1. The x86_64 OBS build completes without the OPEN_TREE_CLONE
   redefinition error.
2. OPEN_TREE_CLONE and OPEN_TREE_CLOEXEC keep their kernel header values
   when /usr/include/linux/mount.h provides them.
3. Other architectures are unaffected because the guard is a no-op when
   the kernel headers do not define these macros.
@Zeno-sole

Copy link
Copy Markdown
Contributor

/test ai-review

deepin-ci-robot and others added 6 commits September 16, 2026 09:20
…lete (bug 34506)

CVE: CVE-2026-19542 (unknown) - 修复 tdelete 函数中的越界数组写入漏洞 (bug 34506)
Upstream: https://sourceware.org/git/?p=glibc.git;a=commit;h=e2789c46e3bfdcd67a82bea9946b315c179e83d3

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
CVE: CVE-2026-19542 - 兼容性适配修改:无额外修改,CVE patch 已正确应用

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
…ding character reset (CVE-2026

CVE: CVE-2026-80489 (unknown) - Converting crafted EUC_JISX0213 input to UCS-4 or the internal wide character encoding, for example with iconv, in the GNU C Library version 2.3 to 2.44 may result in the converter making no progress, causing the calling application to hang.
Upstream: https://sourceware.org/git/glibc.git/commit/?id=4dafa087ff5fe7df45bd37dc727e988da6b8c935

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
…state on non-NOSPACE errors (

CVE: CVE-2026-6368 (low) - posix: Fix wordexp WRDE_APPEND to preserve state on non-NOSPACE errors (BZ 34090, CVE-2026-6368)
Upstream: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=dfc8ef388ef7856f318ade7dec501f92ce54f9e3

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
…t truncation [BZ 31026, CVE-2

CVE: CVE-2026-8674 (medium) - resolv: Fix assertion failure on search list truncation [BZ 31026, CVE-2026-8674]
Upstream: https://sourceware.org/git/?p=glibc.git;a=commit;h=506ea57086bfb9ce3daff1c14246a1cb532aba0a

Co-authored-by: hudeng <hudeng@deepin.org>
Generated-By: qwen3.6-35b
@Zeno-sole
Zeno-sole merged commit f987fa6 into master Sep 20, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants