Connector/C Out-of-bounds read from unterminated GSSAPI SPN in `parse_server_packet()`
该报告还没有中文解读。
原文摘录
摘自原文(5434 字符中的一小部分)
`parse_server_packet()` in `plugins/auth/auth_gssapi_client.c` uses `strncpy()` to copy the server-supplied Service Principal Name (SPN) into a fixed-size stack buffer without explicit NUL termination. When the server sends an SPN of 256+ bytes with no NUL byte, `strncpy(spn, packet, 256)` fills …
原文中的代码
static void parse_server_packet(char *packet, size_t packet_len, char *spn, char *mech)
{
size_t spn_len;
spn_len = strnlen(packet, packet_len);
strncpy(spn, packet, PRINCIPAL_NAME_MAX); // PRINCIPAL_NAME_MAX = 256
if (spn_len == packet_len - 1)
{
*mech = 0;
}
else
{ …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 MariaDB 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @mschorm · 版权归作者与 MariaDB 所有