Xinetd 2.1.x/2.3.x Rejected... CVE-2003-0211 CNVD-2003-1089 CNNVD-200305-002

5.0 AV AC AU C I A
发布: 2003-05-05
修订: 2017-10-11

Xinetd是一个来源于BSD inetd的安全替代产品,最初是由panos@cs.colorado.edu开发的。 Xinetd当连接被拒绝时会发生内存泄露,远程攻击者可以利用这个漏洞对xinetd服务进行拒绝服务攻击。 问题存在于service.c代码中: void svc_request( struct service *sp ) { connection_s *cp ; status_e ret_code; cp = conn_new( sp ) ; if ( cp == CONN_NULL ) return ; if (sp->svc_not_generic) ret_code = spec_service_handler(sp, cp); else ret_code = svc_generic_handler(sp, cp); if ( ret_code != OK ) { if ( SVC_LOGS_USERID_ON_FAILURE( sp ) ) if( spec_service_handler( LOG_SERVICE( ps ), cp ) == FAILED ) { conn_free( cp, 1 ); return; } CONN_CLOSE(cp); } } 上面代码存在一些问题,xinetd中的sigchld处理程序(child_exit->server_end-> svc_postmortem)一般用于释放连接数据,如果ret_code返回非真,连接就仅仅关闭而已,而不是调用close(cp->co_descriptor); 由于sigchld不调用而不释放cp。cp指向的内存区域为144字节,大量的拒绝连接可导致消耗大量系统内存而发生拒绝服务。 不过此漏洞仅仅存在Xinetd配置为能拒绝错误连接的情况下产生。

0%
当前有3条漏洞利用/PoC
当前有11条受影响产品信息