WP Manifestindependent plugin directory
manifest / events / vehicle-booking-system

Vehicle Booking System WP Registry grade F. Critical findings · 4 findingsWP RegistryCritical findings · 4 findingsOpen the reportF

Taxi Booking System for Wordpress. Cost is calculated on a per km/mile rate and routing / distance is calculated by Google Maps v3 API

★ 6stars
v1.0.2latest · 10 years ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/gnikolopoulos/vehicle-booking-system/archive/refs/heads/master.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Vehicle Booking System for Wordpress

Taxi/Vehicle booking Plugin for Wordpress. Ideal for companies that calculate fares using route length.

NOTE: Do not send emails asking for support, file an issue on github instead

Features:

  • Google Maps API for distance calculation and Places
  • Redux Framework for plugin options
  • Custom post types and Metaboxes
  • AJAX form handling
  • Simple multi-step form
  • qTip 2 tooltips for error messages
  • Car costs can be fixed or incremental
  • Date based surcharges (fixed or percentage based)
  • Locations can have extra charges (fixed or percentage based)

Usage

This plugin uses 3 main shortcodes:

  • [carlist] - Displays all cars currently in the system.
  • [bookingform] - Displays the multi-step ajax-powered booking form.
  • [my_bookings] - Displays the current logged in user's booking history.

TODO

  • More shortcodes
  • More plugin options
  • Better metabox handling
  • Better admin styling

Basic Roubleshooting

If you face issues with the calculation of the total price, check the following:

  • Tier pricing for cars
  • Surcharges

If you face problems with the calculation of route distance, check the following:

  • Use google maps website (maps.google.com) and try the same route
  • Make sure another plugin or theme does not interfere with this plugin

Releases

2 releases.

Tag
Published
v1.0.2 latest
Jun 2, 2016 10 years ago
May 31, 2016 10 years ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

F grade

Security

Vehicle Booking System 1.0 · audited by WP Registry

Critical findings.

3 critical 1 high
Audited release
1.0
Findings
4
Worst severity
critical
Content hash
fcefa412a02a4316b44a45bb…

Findings

  • critical Unauthenticated booking creation with client-controlled price stored and paid

    unsafe_input

    wp_ajax_nopriv_create_booking accepts a public booking-nonce (rendered on the front-end form) and creates a published bookings CPT with attacker-supplied vbs_cost, contact fields, and notes. Cost is never recomputed server-side from car/distance before storage. Follow-on create_payment echoes that client cost into a PayPal _xclick amount field, enabling free/underpriced rides.

    include/form_handler.php:56-164

    Recommendation

    Recompute price server-side via calculateCost() and ignore client cost. Require rate limits, sanitize all fields, and bind PayPal amount to server-side cost only.

  • critical Unauthenticated create_payment builds PayPal form from attacker-controlled amount (no nonce)

    missing_auth

    wp_ajax_nopriv_create_payment has no nonce or auth. It echoes POST cost/id/code into a PayPal HTML form amount/item fields. An unauthenticated attacker can mint payment forms for arbitrary amounts against the merchant PayPal email from settings.

    include/form_handler.php:167-200

    Recommendation

    Require booking ownership token/nonce, load amount exclusively from post meta after server-side pricing, and escape all echoed attributes.

  • critical Stored XSS via unsanitized booking fields echoed in admin and email HTML

    xss_stored

    create_booking stores raw $_POST full_name, email, notes, pickup, dropoff into post meta. Admin list columns in vbs.php echo rwmb_meta values without escaping; get_email_template interpolates the same fields into HTML email. Unauthenticated bookers can inject script that executes when an admin views Bookings or opens the confirmation email HTML path.

    include/form_handler.php:75-136

    Recommendation

    Sanitize on write (sanitize_text_field/textarea) and escape on output (esc_html). Prefer wp_kses_post only where HTML is intentional.

  • high PayPal form attribute injection via unescaped cost/code in create_payment response

    xss_reflected

    create_payment concatenates $cost and $code into HTML attribute values without esc_attr. Even aside from amount tampering, a crafted cost/code can break out of the attribute and inject markup into the AJAX HTML response rendered by the booking UI.

    include/form_handler.php:182-199

    Recommendation

    Escape with esc_attr() (and prefer JSON + client templating).

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.