PluginProbe
Welcart e-Commerce / 2.12.4
Welcart e-Commerce v2.12.4
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 All 292 releases
← All changes | functions/hoock_func.php +9 -3 2.12.12.12.4 View file →
@@ -134,9 +134,9 @@
134 134 if ( empty( $datas ) || empty( $datas['order_data'] ) ) {
135 135 return;
136 136 }
137 137
138 - $order_data = maybe_unserialize( $datas['order_data'] );
138 + $order_data = wel_safe_maybe_unserialize( $datas['order_data'] );
139 139 if ( ! is_array( $order_data ) ) {
140 140 return;
141 141 }
142 142
@@ -577,9 +577,9 @@
577 577 usces_log( 'PayPal IPN transaction : ' . wp_unslash( $_REQUEST['txn_id'] ), 'acting_transaction.log' );
578 578 }
579 579 die( 'PayPal' );
580 580
581 - /* telecom edy */
581 + /* telecom edy 提供対象外のため無効化. CVE-2026-19887(PHP Object Injection)対応.
582 582 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && ( isset( $_REQUEST['acting'] ) && 'telecom_edy' == $_REQUEST['acting'] ) ) {
583 583 $data = array();
584 584 foreach ( $_REQUEST as $key => $value ) {
585 585 $data[ $key ] = $value;
@@ -594,9 +594,9 @@
594 594 if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
595 595 $table_meta_name = $wpdb->prefix . 'usces_order_meta';
596 596 $mquery = $wpdb->prepare( "SELECT order_id, meta_value FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
597 597 $mvalue = $wpdb->get_row( $mquery, ARRAY_A );
598 - $value = unserialize( $mvalue['meta_value'] );
598 + $value = wel_safe_maybe_unserialize( $mvalue['meta_value'] );
599 599 $_SESSION['usces_cart'] = $value['usces_cart'];
600 600 $_SESSION['usces_entry'] = $value['usces_entry'];
601 601 $_SESSION['usces_member'] = $value['usces_member'];
602 602 $res = $usces->order_processing();
@@ -624,11 +624,17 @@
624 624 usces_save_order_acting_error( $log );
625 625 usces_log( 'telecom edy - Error 2 : ' . print_r( $data, true ), 'acting_transaction.log' );
626 626 }
627 627 die( 'SuccessOK' );
628 + */
628 629
629 630 /* telecom credit */
630 631 } elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['rel'] ) ) {
632 + $acting_clientip = ( isset( $usces->options['acting_settings']['telecom']['clientip'] ) ) ? (string) $usces->options['acting_settings']['telecom']['clientip'] : '';
633 + if ( '' === $acting_clientip || (string) wp_unslash( $_REQUEST['clientip'] ) !== $acting_clientip ) {
634 + /* 設定済みクライアントIPと一致しない通知は正規のものではないため記録せず終了 */
635 + die( 'SuccessOK' );
636 + }
631 637 $data = array();
632 638 foreach ( $_REQUEST as $key => $value ) {
633 639 $data[ $key ] = $value;
634 640 }