Forums / Reports of Security Problems / MAJOR ISSUE? Abuse of AJAX to place FREE Orders

MAJOR ISSUE? Abuse of AJAX to place FREE Orders

Started by jeff_mash on 12 Nov 2026, 10:26 PM · Views: 14

Results 1 to 1 of 1
12 Nov 2026, 10:26 PM [edited]
#1
jeff_mash avatar

jeff_mash

Totally Zenned

Join Date:
Aug 2004
Posts:
737
Plugin Contributions:
0

MAJOR ISSUE? Abuse of AJAX to place FREE Orders

Not sure what is happening but this is occurring right now in real time.

ZenCart 2.2 / OPC 2.7.0 / Bootstrap Template 3.7.9

Had a customer place two different orders, somehow submitting them as both the "freecharger" and a "Gift Certificate/Coupon" payment method.

It's for a digital download product, so they then get access to it even though they didn't submit payment.

I removed the freecharger payment module, and that is when the second order popped up as a "Gift Certificate/Coupon" order, even though they didn't redeem any coupon or gift certificate codes.

The associated log files during this time are these:

[12-Nov-2026 14:05:54 America/Los_Angeles] Request URI: /store/ajax.php?act=ajaxPayment&method=prepareConfirmation, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/ajax/zcAjaxPayment.php(79): zen_debug_error_handler()
#1 /ajax.php(104): zcAjaxPayment->prepareConfirmation()
--> PHP Warning: Undefined array key "comments" in /includes/classes/ajax/zcAjaxPayment.php on line 79.
[12-Nov-2026 14:05:54 America/Los_Angeles] Request URI: /store/ajax.php?act=ajaxPayment&method=prepareConfirmation, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/payment.php(174): zen_debug_error_handler()
#1 /includes/classes/payment.php(195): payment->isPaymentModuleMethodPresent()
#2 /includes/classes/ajax/zcAjaxPayment.php(87): payment->update_status()
#3 /ajax.php(104): zcAjaxPayment->prepareConfirmation()
--> PHP Warning: Undefined global variable $freecharger in /includes/classes/payment.php on line 174.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 [internal function]: zen_debug_error_handler()
#1 /includes/modules/checkout_process.php(87): strpos()
#2 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#3 /index.php(40): require('/home/domain/...')
--> PHP Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /includes/modules/checkout_process.php on line 87.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/modules/checkout_process.php(87): zen_debug_error_handler()
#1 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#2 /index.php(40): require('/home/domain/...')
--> PHP Warning: Undefined global variable $freecharger in /includes/modules/checkout_process.php on line 87.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/modules/checkout_process.php(87): zen_debug_error_handler()
#1 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#2 /index.php(40): require('/home/domain/...')
--> PHP Warning: Attempt to read property "code" on null in /includes/modules/checkout_process.php on line 87.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/payment.php(174): zen_debug_error_handler()
#1 /includes/classes/payment.php(379): payment->isPaymentModuleMethodPresent()
#2 /includes/modules/checkout_process.php(110): payment->before_process()
#3 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#4 /index.php(40): require('/home/domain/...')
--> PHP Warning: Undefined global variable $freecharger in /includes/classes/payment.php on line 174.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/payment.php(174): zen_debug_error_handler()
#1 /includes/classes/payment.php(401): payment->isPaymentModuleMethodPresent()
#2 /includes/modules/checkout_process.php(123): payment->after_order_create()
#3 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#4 /index.php(40): require('/home/domain/...')
--> PHP Warning: Undefined global variable $freecharger in /includes/classes/payment.php on line 174.
[12-Nov-2026 14:05:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/order.php(1433): zen_debug_error_handler()
#1 /includes/modules/checkout_process.php(130): order->send_order_email()
#2 /includes/modules/pages/checkout_process/header_php.php(13): require('/home/domain/...')
#3 /index.php(40): require('/home/domain/...')
--> PHP Warning: Undefined global variable $freecharger in /includes/classes/order.php on line 1433.
[12-Nov-2026 14:05:57 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_process, IP address: 166.88.178.130, Language id 1
#0 /includes/classes/payment.php(174): zen_debug_error_handler()
#1 /includes/classes/payment.php(390): payment->isPaymentModuleMethodPresent()
#2 /includes/modules/pages/checkout_process/header_php.php(16): payment->after_process()
#3 /index.php(40): require('/home/domain/...')
--> PHP Warning: Undefined global variable $freecharger in /includes/classes/payment.php on line 174.

Attaching a screenshot of the order too.

  • Jeff