• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Firebird protocol.cppXDR协议远程内存破坏漏洞

    发布者: 午夜收音机 | 发布时间: 2025-6-28 23:03| 查看数: 105| 评论数: 0|帖子模式

    受影响系统:
    Firebird Firebird SQL 2.1.0 Beta 2
    Firebird Firebird SQL 2.0.3
    Firebird Firebird SQL 1.5.5
    Firebird Firebird SQL 1.0.3不受影响系统:
    Firebird Firebird SQL 2.1.0 RC1
    Firebird Firebird SQL 2.0.4
    Firebird Firebird SQL 1.5.6描述:
    Firebird是一款提供多个ANSI SQL-92功能的关系型数据库,可运行在Linux、Windows和各种Unix平台下。Firebird在处理畸形格式的数据时存在漏洞,远程攻击者可能利用此漏洞导致拒绝服务。如果Firebird的协议解析器(src/remote/protocol.cpp)接受到了任何带有有效数据的以下操作的时候:op_receive
    op_start
    op_start_and_receive
    op_send
    op_start_and_send
    op_start_send_and_receive解析器在使用某些变量之前没有执行正确的过滤,在src/remote/protocol.cpp文件中未经验证便直接将以下报文缓冲区分配给了数据结构(MAP宏没有任何范围检查):src/remote/protocol.cpp:417        MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_request));
            MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_incarnation));
            MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_transaction));
            MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_message_number));
            /* Changes to this op's protocol must mirror in xdr_protocol_overhead */
            return xdr_request(xdrs, data->p_data_request,
                data->p_data_message_number,
                data->p_data_incarnation) ? P_TRUE(xdrs, p) : P_FALSE(xdrs, p);然后在xdr_request()函数中,使用data->p_data_request变量(request_id)作为数组的索引:    ...
        rrq* request = (rrq*) port->port_objects[request_id];
        ...这会触发内存结构破坏,导致服务器崩溃或执行任意代码。data->p_data_message_number变量也存在类似的问题。厂商补丁:
    目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:http://firebirdsql.org/index.php?op=files&id=fb210_RC1

    来源:https://www.jb51.net/hack/5509.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表