កំពុងផ្ទុក...

ថ្ងៃ អង្គារ ទី២១ ខែ កក្កដា ឆ្នាំ ២០២៦

ភាពងាយរងគ្រោះ RCE ដ៏សំខាន់របស់ wp2shell – ការគ្របដណ្តប់ពេញលេញរួមទាំងព័ត៌មានលម្អិតអំពី PoC និងការវាយប្រហារសកម្ម


ទិដ្ឋភាពទូទៅ

ខ្សែសង្វាក់នៃភាពងាយរងគ្រោះដ៏សំខាន់មួយនៃការប្រតិបត្តិកូដពីចម្ងាយមុនពេលផ្ទៀងផ្ទាត់ (RCE) ដែលមានឈ្មោះហៅក្រៅថា "wp2shell" ត្រូវបានបង្ហាញនៅក្នុង WordPress Core ដែលធ្វើឱ្យគេហទំព័រប្រមាណជាង 500 លានកន្លែងប្រឈមនឹងហានិភ័យនៃការកាន់កាប់ទាំងស្រុងដោយអ្នកវាយប្រហារដែលមិនមានការផ្ទៀងផ្ទាត់ទាំងស្រុង។

ខ្សែសង្វាក់នេះរួមបញ្ចូលគ្នានូវចំណុចខ្សោយពីរដែលត្រូវបានតាមដានដាច់ដោយឡែកពីគ្នាគឺ CVE-2026-63030 ដែលជាបញ្ហាច្រឡំផ្លូវបាច់ REST API និង CVE-2026-60137 ដែលជាចំណុចខ្សោយនៃការចាក់ SQL នៅក្នុងប៉ារ៉ាម៉ែត្រ author__not_in នៃ WP_Query ដើម្បីសម្រេចបាននូវការសម្របសម្រួលម៉ាស៊ីនមេពេញលេញលើការដំឡើង WordPress ស្តុកដោយមិនចាំបាច់ដំឡើងកម្មវិធីជំនួយ។

WordPress ផ្តល់ថាមពលប្រហែល 43 ភាគរយនៃគេហទំព័រទាំងអស់នៅទូទាំងពិភពលោក ដែលធ្វើឱ្យនេះជាការបង្ហាញពីសុវត្ថិភាព CMS ដ៏សំខាន់បំផុតមួយនៅក្នុងការចងចាំថ្មីៗនេះ។

អ្វីដែលធ្វើឱ្យ wp2shell ខុសពីបញ្ហាសុវត្ថិភាព WordPress ធម្មតាគឺថាវាមិនតម្រូវឱ្យមានលក្ខខណ្ឌជាមុនអ្វីទាំងអស់៖ គ្មានគណនីត្រឹមត្រូវ គ្មានកម្មវិធីជំនួយងាយរងគ្រោះ គ្មានការកំណត់រចនាសម្ព័ន្ធពិសេស និងគ្មានអន្តរកម្មរបស់អ្នកប្រើប្រាស់។ អ្នកវាយប្រហារអនាមិកណាមួយដែលមានសមត្ថភាពទៅដល់ឧទាហរណ៍ WordPress ដែលងាយរងគ្រោះតាមរយៈបណ្តាញអាចសម្របសម្រួលវាភ្លាមៗ។

ការរកឃើញ៖ គំរូ AI បានរកឃើញវាក្នុងតម្លៃ 25 ដុល្លារ

កំហុសនេះត្រូវបានរកឃើញដោយអ្នកស្រាវជ្រាវសន្តិសុខ Adam Kues មកពីក្រុមស្រាវជ្រាវ Assetnote របស់ Searchlight Cyber ​​ដោយប្រើវិធីសាស្ត្រមិនធម្មតាមួយ៖ គម្រោងស្រាវជ្រាវភាពងាយរងគ្រោះដែលជំរុញដោយ AI ដែលដំណើរការដោយគំរូ GPT-5.6 Sol Ultra របស់ OpenAI។

Kues បានកែសម្រួលប្រអប់បញ្ចូលដែលបានបោះពុម្ពផ្សាយដំបូងដោយ OpenAI ដែលត្រូវបានប្រើដើម្បីជួយគំរូដោះស្រាយការស្មានគណិតវិទ្យា "Cycle Double Cover" ហើយបានចង្អុលបង្ហាញវាឡើងវិញនៅមូលដ្ឋានកូដស្នូល WordPress ដោយណែនាំគំរូឱ្យស្វែងរកខ្សែសង្វាក់មុនពេលផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវទៅ RCE ដោយប្រើភ្នាក់ងារស្រាវជ្រាវស្របគ្នារហូតដល់បួនក្នុងរយៈពេលយ៉ាងហោចណាស់ប្រាំមួយម៉ោង

Kues បានណែនាំគំរូយ៉ាងច្បាស់កុំឱ្យពិគ្រោះជាមួយកំណត់ហេតុផ្លាស់ប្តូរ ប្រវត្តិ git ឬអ៊ីនធឺណិតដើម្បីខុសគ្នាប្រឆាំងនឹងកំណែដែលបានជួសជុល ដោយបង្ខំវាឱ្យរកឃើញកំហុសតែតាមរយៈការវិភាគកូដគោលការណ៍ដំបូង។ គំរូនេះក៏ត្រូវបានគេប្រាប់ផងដែរថាវាអាចក្លូន និងធ្វើសវនកម្មការពឹងផ្អែកភាគីទីបីប្រសិនបើខ្សែសង្វាក់ពេញលេញតម្រូវឱ្យមានកំហុសនៅក្នុងបណ្ណាល័យមូលដ្ឋានដូចជា PHP ឬ MySQL ខ្លួនឯង។

លទ្ធផល៖ Sol បានកំណត់អត្តសញ្ញាណការចាក់ SQL មុនពេលផ្ទៀងផ្ទាត់យ៉ាងពេញលេញនៅក្នុងមូលដ្ឋានកូដ ដែលដំបូងឡើយ Kues មានការសង្ស័យដោយសារតែកំណត់ត្រារយៈពេលមួយទសវត្សរ៍របស់ WordPress ដោយគ្មានភាពងាយរងគ្រោះមុនផ្ទៀងផ្ទាត់ដ៏សំខាន់។ បន្ទាប់ពីផ្ទៀងផ្ទាត់ SQLi ទល់នឹងឧទាហរណ៍សាកល្បងផ្ទាល់ដោយការទាញយកអាសយដ្ឋានអ៊ីមែលរបស់អ្នកគ្រប់គ្រង Kues បានសួរគំរូថាតើវាអាចបង្កើនកំហុសទៅជា RCE ពេញលេញបានដែរឬទេ។

ប្រហែលបួនម៉ោងក្រោយមក គំរូបានឆ្លើយតបដោយវិជ្ជមានជាមួយនឹងខ្សែសង្វាក់បង្កើនប្រសិទ្ធភាពដែលដំណើរការ។ ថ្លៃដើមគណនាសរុបសម្រាប់ការរកឃើញទាំងមូល ដោយប្រើប្រាស់ការជាវ 200 ដុល្លារក្នុងមួយខែ គឺប្រហែល 25 ដុល្លារលើមូលដ្ឋានការប្រើប្រាស់ដែលបានវាយតម្លៃសមាមាត្រ។

Kues បានកត់សម្គាល់ថាការយល់ដឹង និងការកត់ត្រាខ្សែសង្វាក់កេងប្រវ័ញ្ចដែលបង្កើតឡើងដោយ AI បានចំណាយពេលគាត់យូរជាងគំរូដែលបានចំណាយដើម្បីអភិវឌ្ឍវា ដោយហៅបច្ចេកទេសក្រោយការកេងប្រវ័ញ្ចថា "មិនសមហេតុផលទាំងស្រុង" នៅក្នុងភាពស្មុគស្មាញរបស់វា។

ការបំបែកបច្ចេកទេសនៃខ្សែសង្វាក់កេងប្រវ័ញ្ច

កំហុស Batch API Desynchronization (CVE-2026-63030)

កំហុស root ស្ថិតនៅក្នុងចំណុចបញ្ចប់ batch API របស់ WordPress REST (/wp-json/batch/v1) ដែលជាលក្ខណៈពិសេសដែលបានណែនាំនៅក្នុង WordPress 5.6 កាលពីឆ្នាំ 2020 ដែលអនុញ្ញាតឱ្យសំណើ API និម្មិតច្រើនត្រូវបានចងជាបាច់ទៅជាការហៅតែមួយ។

ក្រោមប្រតិបត្តិការធម្មតា សំណើ REST នីមួយៗឆ្លងកាត់បំពង់បួនជំហាន៖ ការផ្ទៀងផ្ទាត់ប៉ារ៉ាម៉ែត្រ ការសម្អាតប៉ារ៉ាម៉ែត្រ ការហៅត្រឡប់មកវិញការអនុញ្ញាត និងចុងក្រោយការហៅត្រឡប់មកវិញនៃការប្រតិបត្តិចំណុចបញ្ចប់។

ចំណុចបញ្ចប់ batch បំបែកគំរូនេះដោយដំណើរការការផ្ទៀងផ្ទាត់ និងការប្រតិបត្តិជារង្វិលជុំពីរដាច់ដោយឡែកពីគ្នា ជាជាងដំណើរការសំណើនីមួយៗជាបន្តបន្ទាប់។ ប្រសិនបើសំណើមួយនៅក្នុង batch មានទម្រង់មិនត្រឹមត្រូវ អារេសុពលភាពកត់ត្រាកំហុស ប៉ុន្តែអារេដែលត្រូវគ្នានៃ handlers ដែលបានដោះស្រាយមិនត្រូវបានធ្វើបច្ចុប្បន្នភាពក្នុងសមកាលកម្មទេ ដោយសារតែសេចក្តីថ្លែងការណ៍បន្តដែលរំលងការបញ្ចូលអារេនៅម្ខាង ប៉ុន្តែមិនមែនម្ខាងទៀតទេ។

វាធ្វើឱ្យការតម្រឹមលិបិក្រមរវាងអារេទាំងពីរមិនស៊ីសង្វាក់គ្នា ដូច្នេះនៅពេលដែលការប្រតិបត្តិដំណើរការ ប៉ារ៉ាម៉ែត្រដែលបានផ្ទៀងផ្ទាត់របស់សំណើ N អាចត្រូវបានអនុវត្តប្រឆាំងនឹងកម្មវិធីដោះស្រាយពិតប្រាកដរបស់សំណើ N+1 ដោយរំលងទាំងស្រុងនូវការសម្អាតប៉ារ៉ាម៉ែត្រដែលចង់បាន។ កំហុសនេះត្រូវបានចាត់ថ្នាក់ក្រោម CWE-436 (ជម្លោះការបកស្រាយ) និងមានពិន្ទុមូលដ្ឋាន CVSS v3.1 7.5 (ខ្ពស់)។

អាងស្តុក SQL Injection (CVE-2026-60137)

កំហុស desync តែម្នាក់ឯងមិនផ្តល់អ្វីទេបើគ្មានអាងស្តុកដែលងាយរងគ្រោះដើម្បីកេងប្រវ័ញ្ច។ អាងស្តុកនោះគឺជាប៉ារ៉ាម៉ែត្រ author__not_in នៃ WP_Query ដែលជាថ្នាក់ស្នូលរបស់ WordPress សម្រាប់ការបង្កើតសំណួរមូលដ្ឋានទិន្នន័យ។ នៅពេលដែលប៉ារ៉ាម៉ែត្រត្រូវបានដាក់ស្នើជាអារេ WordPress នឹងសម្អាតតម្លៃនីមួយៗដោយប្រើ absint()។ ប៉ុន្តែប្រសិនបើវាត្រូវបានដាក់ស្នើជាខ្សែអក្សរ scalar ឆៅជំនួសវិញ ស្តេ sanitization

p ត្រូវបានរំលងទាំងស្រុង ហើយតម្លៃត្រូវបានបញ្ចូលដោយផ្ទាល់ទៅក្នុងឃ្លា SQL NOT IN ឆៅ។ ជាធម្មតា ផ្លូវនេះមិនអាចទៅដល់បានទេ ដោយសារតែប៉ារ៉ាម៉ែត្រ author_exclude ដែលប្រឈមមុខនឹងសាធារណជនត្រូវបានផ្ទៀងផ្ទាត់ជាអារេនៃចំនួនគត់មុនពេលទៅដល់ author__not_in។

កំហុស batch-route desync រំលងការផ្ទៀងផ្ទាត់នោះ ដែលអនុញ្ញាតឱ្យ scalar SQL payload រអិលឆ្លងកាត់ដោយមិនប៉ះពាល់ ហើយដោយសារតែចំណុចបញ្ចប់មូលដ្ឋានគាំទ្រតែសំណើ GET (ដែល batch API មិនអនុញ្ញាត) ការកេងប្រវ័ញ្ចនេះប្រើការហៅ batch ដែលដាក់ជាស្រទាប់ៗ ដើម្បីលួចយកសំណើ GET តាមរយៈយន្តការ desync ជាលើកទីពីរ។

ភាពងាយរងគ្រោះនេះត្រូវបានចាត់ថ្នាក់ក្រោម CWE-89 (ការចាក់ SQL) និងវាយតម្លៃ 9.1 (សំខាន់) នៅលើមាត្រដ្ឋាន CVSS v3.1។

ការបង្កើន Read-Only SQLi ទៅ Full RCE

ការចាក់ SQL តែម្នាក់ឯងគឺជាកំហុសលេចធ្លាយទិន្នន័យ "SELECT-only" ដែលមិនអាចទាញយកព័ត៌មានសម្ងាត់ plaintext ដែលអាចបំបែកបានដោយផ្ទាល់នោះទេ ដោយសារតែ WordPress ធ្វើការ hash ពាក្យសម្ងាត់នៅក្នុងមូលដ្ឋានទិន្នន័យ។ ផ្លូវ​នៃ​ការ​បង្កើន​ដែល​បាន​បង្កើត​ឡើង​ដោយ​គំរូ AI បាន​កេងប្រវ័ញ្ច​ខ្សែសង្វាក់​នៃ​ឥរិយាបថ​បន្ទាប់បន្សំ​របស់ WordPress៖

ការ​បំពុល​ឃ្លាំង​សម្ងាត់​ប្រកាស​ក្នុង​អង្គ​ចងចាំ៖ ការ​ចាក់​បញ្ចូល​ដែល​មាន​មូលដ្ឋាន​លើ SQLi អាច​បង្កើត​វត្ថុ WP_Post ក្លែងក្លាយ​ដែល​ត្រូវ​បាន​រក្សា​ទុក​ក្នុង​អង្គ​ចងចាំ​សម្រាប់​រយៈពេល​នៃ​សំណើ។

ការ​រំលោភ​បំពាន​ឃ្លាំង​សម្ងាត់​បង្កប់៖ ឃ្លាំង​សម្ងាត់​កូដ​ខ្លី​របស់ WordPress បាន​យោង​ទៅ​លើ​ប្រកាស​ក្នុង​ស្រុក​ជា​ជួរ​ដេក oembed_cache នៅ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​ដោយ​មិន​បាន​ផ្ទៀងផ្ទាត់​អត្តសញ្ញាណ​ប្រកាស​ដែល​បាន​យោង​ដែល​មាន​ពិត​ប្រាកដ ដែល​អនុញ្ញាត​ឱ្យ​អ្នក​វាយប្រហារ​ដាំ​ជួរ​ដេក​មូលដ្ឋាន​ទិន្នន័យ​ដែល​មើល​ទៅ​ស្របច្បាប់។

ការ​កេងប្រវ័ញ្ច​ការ​ផ្សះផ្សា​ឃ្លាំង​សម្ងាត់/មូលដ្ឋាន​ទិន្នន័យ៖ នៅ​ពេល WordPress រក​ឃើញ​ភាព​មិន​ស៊ីគ្នា​រវាង​កំណែ​ក្នុង​អង្គ​ចងចាំ និង​កំណែ​ដែល​រក្សា​ទុក​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​នៃ​ប្រកាស វា​ពេញចិត្ត​នឹង​តម្លៃ​ក្នុង​អង្គ​ចងចាំ (គ្រប់គ្រង​ដោយ​អ្នក​វាយប្រហារ) ដោយ​មាន​ប្រសិទ្ធភាព​ក្នុង​ការ "លេចឡើង" ជួរ​ដេក​ដែល​បាន​បង្កើត​ឡើង​ជា​ប្រភេទ​ប្រកាស​តាម​អំពើ​ចិត្ត។

ការលួចយកសំណុំការផ្លាស់ប្តូរតាមបំណង៖ ប្រភេទប្រកាស customize_changeset រក្សាទុកការផ្លាស់ប្តូរការកំណត់គេហទំព័រដែលបានព្រាងដែលមានស្លាកជាមួយ user_id ហើយការអនុវត្តវាកំណត់អត្តសញ្ញាណអ្នកប្រើប្រាស់នោះជាបណ្តោះអាសន្នតាមរយៈ wp_set_current_user() រួមទាំងសិទ្ធិអ្នកគ្រប់គ្រង ប្រសិនបើ user_id ត្រូវបានក្លែងបន្លំជា 1។

ឧបករណ៍រកឃើញវដ្ត៖ ការរកឃើញវដ្តឋានានុក្រមក្រោយមេរបស់ WordPress ដែលមានន័យថាការពាររង្វិលជុំគ្មានកំណត់ អាចត្រូវបានរំលោភបំពានដើម្បីបង្កឱ្យមានការហៅ wp_update_post() បន្ទាប់បន្សំដែលបង្ហាញវាលដែលត្រូវបានការពារផ្សេងទៀតដូចជា post_content។

ការចាក់ឡើងវិញនៃទំពក់តាមរយៈ parse_request៖ ខណៈពេលដែលកាន់បរិបទអ្នកគ្រប់គ្រងមួយរយៈខ្លី អ្នកវាយប្រហារបង្កឱ្យមានទំពក់សកម្មភាព parse_request ដែលចាក់ឡើងវិញនូវសំណើបាច់ដើមទាំងមូលនៅពេលនេះជាមួយនឹងសិទ្ធិខ្ពស់ដែលអនុញ្ញាតឱ្យបង្កើតគណនីអ្នកគ្រប់គ្រងថ្មីដែលមានអចិន្ត្រៃយ៍។

ជាមួយនឹងគណនីអ្នកគ្រប់គ្រងក្លែងក្លាយនៅក្នុងដៃ អ្នកវាយប្រហារចូលជាធម្មតា ហើយផ្ទុកឡើងឯកសារ ZIP កម្មវិធីជំនួយដែលមានគំនិតអាក្រក់ ដោយសម្រេចបាននូវការប្រតិបត្តិកូដពីចម្ងាយពេញលេញនៅលើម៉ាស៊ីនមេ។

លោក Kues បាននិយាយថាខ្សែសង្វាក់កេងប្រវ័ញ្ចពេញលេញត្រូវបានផលិតដោយគំរូ AI ក្នុងរយៈពេលជាង 10 ម៉ោង ហើយបានបង្ហាញទំនុកចិត្តថាគ្មានអ្នកស្រាវជ្រាវមនុស្សណាម្នាក់អាចរកឃើញ និងបញ្ចប់ខ្សែសង្វាក់ដោយគ្មានជំនួយក្នុងរយៈពេលនោះទេ។

Super Admin

Admin

សូម ចូលគណនី ដើម្បីបញ្ចេញមតិយោបល់លើអត្ថបទនេះ!

អ្នកក៏អាចចូលចិត្តផងដែរ