CVE-2026-80587 in Linux信息

摘要

由 VulDB • 2026-08-26

在 Linux 内核中,已修复以下漏洞:

mptcp: 避免组合某些传入的子选项

根据 RFC8684 的规定,以及由于代码在不同位置不期望出现某些组合,一些 MPTCP 子选项是互斥的。特别是对于会出现两次但属性不同的子选项更是如此。

新的限制与 mptcp_write_options 在输出端应用的限制相同。相同的规则可以通过一个小修复来重用:当发送方选择此选项时 [1],MP_FASTCLOSE 可以与 DSS 一起使用,而 Linux 并非如此。以下是这些规则:

哪些选项可以一起使用?

X: 互斥 O: 经常一起使用 C: 在某些情况下可以一起使用 P: 可以一起使用但我们倾向于不使用(优化)

| Opt: | MPC | MPJ | DSS | ADD | RM | PRIO | FAIL | FC | RST | |------|-------|-------|-------|-------|-------|------|------|-------|-------| | MPC | | | | | | | | | X | | MPJ | X | | | | | C | X | X | X | | DSS | X | X | | P | C | C | C | X | X | | ADD | X | X | P | | P | C | X | X | X | | RM | C | C | C | P | | C | X | X | X | | PRIO | X | C | C | C | C | | X | X | X | | FAIL | X | X | C | X | X | X | | X | O | | FC | X | X | P | X | X | X | X | | O | | RST | X | X | X | X | X | X | O | O | |

唯一的区别在于 'P':另一个协议栈可以发送 ADD_ADDR 与其他子选项(DSS、RM_ADDR),这应该是允许的。

需要注意的几点:

- 理论上,MP_CAPABLE 可以与 RM_ADDR 一起使用,但没有理由在 SYN 中添加它。请注意,即使有第4个 ACK,除了通过其他通道提前知道 ID 的情况外,似乎也没有用处。最好不要破坏这一点。 - 现在,同时组合 MP_CAPABLE 和 MP_JOIN 将不再导致两个选项都被拒绝,而只是忽略第二个子选项。对于这种意外错误这样做似乎是合理的。至少现在所有不一致的组合都以相同的方式处理。这可能会在下一个版本中发生变化。这也意味着 subflow.c 中对 MPC + MPJ 的显式检查将无法到达。这是可以的,它们将在后续补丁中被移除。

- 如果存在冲突组合,额外的子选项将被忽略:拥有这样的组合要么意味着远程对端有 bug,要么是恶意的。在这种情况下采取最简单的操作:停止处理当前子选项。

- 在 mp_opt->suboptions 中,还有一个位保留给校验和,可以在 MP_CAPABLE 和 DSS 中使用。每次可以将 DSS 选项与其他选项并行使用时,都可以设置校验和,因此验证被合并到新的 OPTIONS_MPTCP_DSS 宏中。

- MP_CAPABLE ACK 可以携带数据级长度和可选的校验和:它们与在 DSS 中发现的相同,因为 DSS 不能与 MP_CAPABLE 并行使用。同样,即使有空间,DSS 也不能与 MP_JOIN 一起使用。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!