¡¾·ì϶¹«¸æ¡¿Linux Kernel RDSÁ㿽±´Ë«³Á¿ªÊͱ¾µØÈ¨ÏÞÌáÉý·ì϶

°ä²¼¹¦·ò 2026-05-20

Ò»¡¢·ì϶¸ÅÊö



0520·ì϶¸ÅÊö.png


Linux KernelÊÇLinux²Ù×÷ϵͳÖ÷Ìâ×é¼þ £¬Õƹܹý³Ìµ÷¶È¡¢ÄÚ´æÖÎÀí¡¢ÍøÂçͨѶ¼°Ó²¼þ×ÊÔ´½ÚÔì¡£RDS(Remote Direct Memory Access Socket)ÊÇLinuxÄÚºËÖеĸ߻úÄÜÍøÂçͨѶºÍ̸×é¼þ £¬Ö§³ÖµÍÑÓ³¤Êý¾Ý´«Êä £¬¿í·ºÀûÓÃÓڸ߻úÄÜÍÆËã¡¢Êý¾Ý¿â¼°ÆóÒµ·þÎñÆ÷»·¾³¡£io_uringÔòÊÇLinuxÌṩµÄ¸ß»úÄÜÒì²½I/O¿ò¼Ü £¬ÓÃÓÚÌáÉýÎļþÓëÍøÂçI/O´¦ÖÃЧÄÜ¡£


2026Äê5ÔÂ20ÈÕ £¬888¼¯ÍŰ²È«Ó¦¼±ÏìÓ¦ÖÐÐÄ£¨VSRC£©¼à²âµ½Linux Kernel RDSÁ㿽±´Ë«³Á¿ªÊͱ¾µØÈ¨ÏÞÌáÉý·ì϶¡£¸Ã·ì϶ԴÓÚrds_message_zcopy_from_user()º¯ÊýÔÚzerocopy·¢ËÍʧ°Üõè¾¶ÖÐ £¬Î´ÕýÈ·ËãÕÊop_nents×Ö¶Î £¬µ¼ÖÂÒ³ÃæÒýÓüÆÊý´¦ÖÃÒì³£ £¬Òý·¢Ë«³Á¿ªÊÍÎÊÌâ¡£¹¥»÷Õ߿ɽáºÏio_uring¹Ì¶¨»º³åÇø»úÔì £¬Í¨¹ý»ú¹ØÊ§°ÜµÄRDS zerocopy·¢ËÍÒªÇó £¬Öð²½ÇÔÈ¡Ò³ÃæÒýÓüÆÊý²¢´¥·¢page cache¸²¸Ç £¬×îÖÕ¸²¸ÇSUID-root¶þ½øÔìÎļþÄÚÈÝ £¬ÊµÏÖ±¾µØÌáȨ²¢»ñÈ¡rootȨÏÞ¡£¸Ã·ì϶ÀûÓÃÁ´ÎÞÐè¶î±íCapabilities £¬ÔÚÆôÓÃCONFIG_RDS¡¢CONFIG_RDS_TCP¼°CONFIG_IO_URINGµÄϵͳÖзçÏսϸß £¬¿ÉÄܵ¼ÖÂÖ÷»úÆëȫʧÏÝ¡£



¶þ¡¢Ó°ÏìÁìÓò



¸Ã·ì϶ӰÏìÔ̺¬RDS zerocopy Tx supportÖ°ÄÜ £¬ÇÒÆôÓÃCONFIG_RDS¡¢CONFIG_RDS_TCP¼°CONFIG_IO_URINGÅäÖõÄLinux Kernel°æ±¾¡£¹«¿ªÐÅÏ¢ÏÔʾ £¬·ì϶ÓÉÌá½»0cebaccef3ac ("rds: zerocopy Tx support.")ÒýÈë £¬¾ßÌåÊÜÓ°Ïì°æ¼¼ÇÉÓòÔÝδÔÚ¹Ù·½²¼¸æÖÐÃ÷È·×¢Ã÷¡£ÒÑÖªArch LinuxĬÈÏÆôÓÃÁËÓйØRDSÄ£¿é £¬Fedora²¿ÃÅ»·¾³Òà¿ÉÄÜÊÜÓ°Ï죻DebianÓëUbuntuÔòĬÈÏͨ¹ýblacklist»úÔìÏÞ¶ÈRDSÄ£¿é×Ô¶¯¼ÓÔØ £¬¿ÉÔڿ϶¨Ë®Æ½ÉϽµµÍ·ì϶ÀûÓ÷çÏÕ¡£´Ë±í £¬ÏµÍ³ÐèÂú×ãio_uring_disabled=0ÇÒ´æÔڿɶÁSUID-root¶þ½øÔìÎļþµÈǰÌá £¬¹¥»÷Õß·½¿ÉʵÏÖÆëÈ«±¾µØÌáÈ¨ÊÆÓÃÁ´¡£



Èý¡¢°²È«´ëÊ©



3.1 Éý¼¶°æ±¾


¹Ù·½ÒѰ䲼½¨¸´²¹¶¡ £¬ÒÔ½¨¸´¸Ã·ì϶¡£


ÏÂÔØÁ´½Ó£º

https://lore.kernel.org/netdev/20260505234336.2132721-1-achender@kernel.org/¡£


3.2 Ò»Ê±´ëÊ©


ÔÝÎÞ¡£


3.3 ͨÓý¨Òé


¶¨ÆÚ¸üÐÂϵͳ²¹¶¡ £¬Ï÷¼õϵͳ·ì϶ £¬ÌáÉý·þÎñÆ÷µÄ°²È«ÐÔ¡£


¼ÓǿϵͳºÍÍøÂçµÄ½Ó¼û½ÚÔì £¬Åú¸Ä·À»ðǽսÊõ £¬¹Ø¹Ø·Ç±ØÒªµÄÀûÓö˿ڻò·þÎñ £¬Ï÷¼õ½«Î£ÏÕ·þÎñ£¨ÈçSSH¡¢RDPµÈ£©Â¶³öµ½¹«Íø £¬Ï÷¼õ¹¥»÷Ãæ¡£

ʹÓÃÆóÒµ¼¶°²È«²úÆ· £¬ÌáÉýÆóÒµµÄÍøÂ簲ȫ»úÄÜ¡£


¼ÓǿϵͳÓû§ºÍȨÏÞÖÎÀí £¬ÆôÓöà³É·ÖÈÏÖ¤»úÔìºÍ×îÓ×ȨÏÞ×¼Ôò £¬Óû§ºÍÈí¼þȨÏÞӦά³ÖÔÚ×îµÍÏÞ¶È¡£

ÆôÓÃÇ¿ÃÜÂëÕ½Êõ²¢ÉèÖÃΪ¶¨ÆÚÅú¸Ä¡£


3.4 ²Î¿¼Á´½Ó


https://raw.githubusercontent.com/v12-security/pocs/09e835b587bf71249775654061ae4c79e92cf430/pintheft/poc.c/

https://lore.kernel.org/netdev/20260505234336.2132721-1-achender@kernel.org/

https://seclists.org/oss-sec/2026/q2/605