¡¾·ì϶¹«¸æ¡¿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ÈÕ£¬£¬£¬ £¬£¬ £¬£¬£¬8827Ì«Ñô¼¯ÍŰ²È«Ó¦¼±ÏìÓ¦ÖÐÐÄ£¨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