¡¾·ì϶¹«¸æ¡¿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ÈÕ£¬±¦ÔËÀ³¹Ù·½ÍøÕ¾°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄ£¨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