Между 14 и 19 октомври 2026 г. в NVD, американската национална база данни за уязвимости, излязоха записи за над десет плъгина за плащане в WordPress, повечето от тях за WooCommerce. Грешката е една и съща. Плъгинът приема подправено известие, че плащането е минало, и маркира поръчката като платена, макар клиентът да не е платил нищо. Нападателят няма нужда от акаунт в магазина. Всички записи са на WPScan, а оценките им по CVSS са предимно между 5.3 и 6.5 („средна“). В записите, които CISA е прегледала досега, няма данни за реални атаки.
Сред засегнатите няма модул на български доставчик. В записите не фигурират нито BORICA, ePay.bg и myPOS, нито плъгините на Еконт и Спиди. Същата грешка обаче може да има всеки модул за плащане, включително писан специално за един магазин, затова проверката по-долу важи за всички, които приемат плащане онлайн.
Как магазинът разбира, че поръчката е платена
Клиентът въвежда данните на картата си на страницата на банката или на платежния доставчик, не в магазина. След плащането доставчикът изпраща на магазина известие (webhook), че сумата е получена, или връща клиента обратно с резултата в адреса. Платежният плъгин чете известието и сменя статуса на поръчката на Processing, което в WooCommerce значи „платена“. Клиентът получава потвърждение, наличността намалява и поръчката влиза в списъка за изпращане.
Истинското известие е подписано с таен ключ, който знаят само доставчикът и магазинът, и плъгинът трябва да провери подписа, преди да приеме известието. Според записите в CVE при Walletdoc, Asaas и Cardinity ключът е празен по подразбиране, а при Visma Pay остава празен, докато търговецът не въведе данните си. Щом ключът е празен, плъгинът приема известие от когото и да е. При Sifalo Pay е достатъчен номерът на една истинска транзакция. Нападателят плаща една своя поръчка и с номера на това плащане маркира като платени други поръчки, които чакат плащане.
Какво рискува магазинът
Нападателят поръчва, „плаща“ с подправеното известие и чака стоката. Ако пратките тръгват с Еконт или Спиди веднага щом поръчката стане платена, никой не забелязва нищо, докато счетоводството не потърси плащането по сметката. При цифрови продукти, като курсове или електронни книги, достъпът до файла се дава веднага и загубата настъпва още в момента на поръчката.
Подобна грешка има и в WPForms Lite, плъгин за формуляри с над 5 милиона активни инсталации според wordpress.org. Във версиите преди 2.0.2.2 формуляр с плащане през PayPal Commerce приема попълване без плащане. Посетителят вижда потвърждението и на Вас идва обичайният имейл, а при PayPal няма нито поръчка, нито плащане.
Засегнат ли е Вашият магазин?
Ето част от засегнатите плъгини. Ако при Вас някой от тях е с версия, по-стара от посочената, сайтът е засегнат.
| Плъгин | Поправен във версия |
|---|---|
| Walletdoc Payment Gateway for WooCommerce | 1.8.5 |
| Asaas Gateway for WooCommerce | 2.7.8 |
| Visma Pay for WooCommerce | 1.2.2 |
| Cardinity Payment Gateway for WooCommerce | 3.4.2 |
| Rede Itaú for WooCommerce | 5.5.3 |
| Snap Finance | 3.12.0 |
| Gateway for Vantiv on WC | няма поправка |
| WPForms Lite | 2.0.2.2 |
Плъгините за плащане и версиите им се виждат в Plugins > Installed Plugins, а в Terminal на cPanel командата по-долу ги показва наведнъж. Как се работи с WP-CLI, е описано в ръководството за WP-CLI.
# cPanel > Terminal, в папката на сайта
# Само чете. Показва плъгините, свързани с плащания.
wp plugin list --fields=name,title,status,version \
| grep -iE "pay|gateway|forms"
Какво да направите
- Обновете плъгина за плащане до последната версия. Ако за Вашия няма поправка, както е при Gateway for Vantiv on WC, изключете го и оставете на клиентите друг начин на плащане, докато излезе нова версия.
- Отворете настройките на модула в
WooCommerce > Settings > Paymentsи проверете дали тайният ключ за известията е попълнен. Всеки доставчик го нарича по свой начин, а стойността се взема от профила на магазина при доставчика. В няколко от уязвимите плъгини атаката минаваше именно през празното поле. - Преди да изпратите поръчка, платена онлайн, проверете дали сумата се вижда в профила при доставчика или по банковата сметка. Правете го задължително при необичайни поръчки (голяма сума, много бройки, нов клиент).
По същия начин сверете и платените поръчки от последните седмици. Филтрирайте WooCommerce > Orders по статус Processing или изпълнете командата по-долу, която показва и номера на транзакцията, записан от платежния плъгин.
# cPanel > Terminal, в папката на сайта
# Само чете. Поръчките в статус Processing от 1 октомври.
wp wc shop_order list --user=ADMIN_LOGIN \
--status=processing --after=2026-10-01T00:00:00 \
--fields=id,total,payment_method_title,transaction_id,date_paid
Сменете ADMIN_LOGIN с потребителското име на администратор, а датата с началото на периода, който искате да прегледате. Потърсете всеки номер от колоната transaction_id в профила при доставчика. Ако плащането липсва, задръжте поръчката, докато не изясните какво се е случило.
Какво правим ние
При наблюдението на уязвимостите всеки ден сверяваме плъгините, темата и WordPress на Вашия сайт с базите данни с уязвимости (CVE), включително модула за плащане. Щом се появи уязвимост в нещо, което използвате, изпращаме Ви сигнал, а обновлението първо пробваме на копие в staging. Сайтът може да е хостнат където и да е. Ако искате да включим и Вашия магазин, пишете ни през формата за запитване.
Често задавани въпроси
Какъв е проблемът с подправените известия за плащане в WooCommerce?
Между 14 и 19 октомври 2026 г. NVD публикува записи за повече от десет платежни плъгина за WordPress, повечето за WooCommerce, с една обща слабост. Плъгинът приема подправено известие, че плащането е минало, и маркира поръчката като платена, макар нищо да не е платено. Нападателят няма нужда от акаунт в магазина.
Засегнати ли са BORICA, ePay.bg и myPOS?
В записите няма български доставчик, а BORICA, ePay.bg, myPOS и плъгините на Еконт и Спиди не са сред тях. Същата слабост обаче може да има всеки модул за плащане, включително писан само за един магазин, затова проверката важи за всеки магазин, който приема плащания онлайн.
Как магазинът разбира, че поръчката е платена?
Клиентът въвежда данните на картата на страницата на банката или доставчика, а след плащането доставчикът праща на магазина известие (webhook) или връща клиента с резултата в адреса. Платежният плъгин го прочита и премества поръчката в Processing, което в WooCommerce значи платена. Истинското известие е подписано с таен ключ, който знаят само доставчикът и магазинът, и плъгинът трябва да провери подписа, преди да му повярва.
Кои платежни плъгини са засегнати и в коя версия са поправени?
Сред засегнатите са Walletdoc (поправка в 1.8.5), Asaas (2.7.8), Visma Pay (1.2.2), Cardinity (3.4.2), Rede Itaú (5.5.3) и Snap Finance (3.12.0). Gateway for Vantiv on WC няма поправка. WPForms Lite има подобен проблем във формите за плащане през PayPal Commerce, поправен във версия 2.0.2.2.
Какво губи магазинът при подправено плащане?
Нападателят прави поръчка, „плаща“ с подправеното известие и чака стоката. Ако пратките с Еконт или Спиди тръгват веднага щом поръчката е маркирана като платена, никой не забелязва, докато не потърси парите в банковата сметка. При дигитални продукти като курсове или електронни книги достъпът до файла се дава веднага, така че загубата е мигновена.
Как да проверя дали тайният ключ за известията е попълнен?
Отворете настройките на модула в WooCommerce > Settings > Payments и вижте полето за тайния ключ, което всеки доставчик нарича различно. Стойността идва от акаунта Ви при доставчика. При няколко от уязвимите плъгини, например Walletdoc, Asaas и Cardinity, ключът е празен по подразбиране и точно празното поле пропуска атаката.
Как да проверя дали поръчка, платена онлайн, наистина е платена?
Преди да изпратите поръчка, платена онлайн, проверете дали парите се виждат при доставчика или в банковата сметка, особено при необичайни поръчки с голяма сума, много бройки или нов клиент. Прегледайте така и платените поръчки от последните седмици, като филтрирате WooCommerce > Orders по статус Processing. Потърсете номера на всяка транзакция в акаунта при доставчика и задръжте поръчката, ако плащането липсва.
Какво да направя, ако платежният ми плъгин няма поправка?
Деактивирайте го и предложете на клиентите друг начин на плащане, докато излезе поправка, както е при Gateway for Vantiv on WC. Ако модулът е писан специално за магазина Ви, попитайте разработчика как проверява известията на доставчика и какво става, когато тайният ключ липсва, защото известие без валиден подпис трябва да бъде отхвърлено.
Източници
- NVD, CVE-2026-103307 (Walletdoc)
- NVD, CVE-2026-87974 (Asaas)
- NVD, CVE-2026-103308 (Visma Pay)
- NVD, CVE-2026-103324 (Cardinity)
- NVD, CVE-2026-94261 (Sifalo Pay)
- NVD, CVE-2026-92428 (Rede Itaú)
- NVD, CVE-2026-92429 (Rede Itaú)
- NVD, CVE-2026-94273 (Snap Finance)
- NVD, CVE-2026-106014 (Gateway for Vantiv on WC)
- NVD, CVE-2026-82844 (WPForms Lite)
- WPScan, Walletdoc Payment Gateway for WooCommerce
- WPScan, Visma Pay for WooCommerce
- WPScan, Snap Finance
- WPScan, Gateway for Vantiv on WC
- WPScan, WPForms Lite
- WordPress.org, WPForms Lite
- WooCommerce, wc shop_order
- WooCommerce, WC CLI examples
- WP-CLI, wp plugin list