co-cart / co-cart

đź›’ CoCart is a free REST API designed to decouple your slow WooCommerce storefront and convert it blazing-fast, build in any web framework, and save you countless hours.

Home Page:https://cocartapi.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Vulnerability] : Any user can choose price for products on cart

nicolas-prigent-needone opened this issue · comments

Prerequisites

  • I have carried out troubleshooting steps and I believe I have found a bug.
  • I have searched for similar bugs in both open and closed issues and cannot find a duplicate.

Describe the bug

I have made some test and without any authentication a user can change price of product on a cart with something like :
{{base_url}}/wp-json/cocart/{{api_version}}/cart/add-item?id=<id>&quantity=<quantity>&price=1&cart_key=<key>

That means any user can set to the minimum price his cart before any payment if i understand correctly.

Modify price of a product before added on a cart is a great functionality but need at least an enforced authentication before to make sure only some admin make the call (use some API token for example).

Expected behavior

Still be able to set the price but only if authenticated, with token API for example.

Actual behavior

Anyone without authentication can set price of product

Steps to reproduce

  1. Add some product from the website to the cart
  2. Type <website_url>/wp-json/cocart/v2/cart and identify cart key, product id etc.
  3. Call <website_url>/wp-json/cocart/{{api_version}}/cart/add-item?id=<id>&quantity=<quantity>&price=<price>&cart_key=<key> from a postman for example
  4. On your website refresh your cart and observe new price (can reduce quantity if you want)
  5. Finalize with payment

WordPress Environment

### WordPress Environment ###

WordPress address (URL): http://localhost:84
Site address (URL): http://localhost:84
WC Version: 7.0.0
REST API Version: âś” 7.0.0
WC Blocks Version: âś” 8.5.1
Action Scheduler Version: âś” 3.4.0
Log Directory Writable: âś”
WP Version: ❌ 6.0.3 - Une nouvelle version de WordPress est disponible (6.1)
WP Multisite: –
WP Memory Limit: 10 Go
WP Debug Mode: –
WP Cron: âś”
Language: fr_FR
External object cache: –

### Server Environment ###

Server Info: Apache/2.4.54 (Debian)
PHP Version: 7.4.30
PHP Post Max Size: 5 Go
PHP Time Limit: 300
PHP Max Input Vars: 1000
cURL Version: 7.74.0
OpenSSL/1.1.1n

SUHOSIN Installed: –
MySQL Version: 5.5.5-10.5.12-MariaDB-1:10.5.12+maria~focal
Max Upload Size: 5 Go
Default Timezone is UTC: âś”
fsockopen/cURL: âś”
SoapClient: ❌ Votre serveur n’a pas la classe SoapClient activée - certaines extensions de passerelle utilisant SOAP peuvent ne pas fonctionner correctement.
DOMDocument: âś”
GZip: âś”
Multibyte String: âś”
Remote Post: âś”
Remote Get: âś”

### Database ###

WC Database Version: 7.0.0
WC Database Prefix: wp_
Taille totale de la base de données: 26.41MB
Taille de la base de données: 21.49MB
Taille de l’index: 4.92MB
wp_woocommerce_sessions: DonnĂ©es : 0.05MB + Index : 0.02MB + Moteur InnoDB
wp_woocommerce_api_keys: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_woocommerce_attribute_taxonomies: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_woocommerce_downloadable_product_permissions: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_woocommerce_order_items: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_woocommerce_order_itemmeta: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_woocommerce_tax_rates: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_woocommerce_tax_rate_locations: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_woocommerce_shipping_zones: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_woocommerce_shipping_zone_locations: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_woocommerce_shipping_zone_methods: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_woocommerce_payment_tokens: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_woocommerce_payment_tokenmeta: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_woocommerce_log: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_actionscheduler_actions: DonnĂ©es : 0.06MB + Index : 0.11MB + Moteur InnoDB
wp_actionscheduler_claims: DonnĂ©es : 0.27MB + Index : 0.17MB + Moteur InnoDB
wp_actionscheduler_groups: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_actionscheduler_logs: DonnĂ©es : 0.05MB + Index : 0.03MB + Moteur InnoDB
wp_blc_filters: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_blc_instances: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_blc_links: DonnĂ©es : 0.06MB + Index : 0.06MB + Moteur InnoDB
wp_blc_synch: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_cocart_carts: DonnĂ©es : 0.05MB + Index : 0.02MB + Moteur InnoDB
wp_commentmeta: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_comments: DonnĂ©es : 0.02MB + Index : 0.09MB + Moteur InnoDB
wp_csp3_subscribers: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_eh_custom_keeper_role: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_ewwwio_images: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_ewwwio_queue: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_e_events: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_e_notes: DonnĂ©es : 0.02MB + Index : 0.17MB + Moteur InnoDB
wp_e_notes_users_relations: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_e_submissions: DonnĂ©es : 0.02MB + Index : 0.27MB + Moteur InnoDB
wp_e_submissions_actions_log: DonnĂ©es : 0.02MB + Index : 0.11MB + Moteur InnoDB
wp_e_submissions_values: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_gla_budget_recommendations: DonnĂ©es : 0.22MB + Index : 0.14MB + Moteur InnoDB
wp_gla_merchant_issues: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_gla_shipping_rates: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_gla_shipping_times: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_imagify_files: DonnĂ©es : 0.02MB + Index : 0.08MB + Moteur InnoDB
wp_imagify_folders: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_links: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailchimp_carts: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_mailchimp_jobs: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_mailpoet_custom_fields: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_dynamic_segment_filters: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_feature_flags: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_forms: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_mailpoet_log: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_mailpoet_mapping_to_external_entities: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_newsletters: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_newsletter_links: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_mailpoet_newsletter_option: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_newsletter_option_fields: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_newsletter_posts: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_newsletter_segment: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_newsletter_templates: DonnĂ©es : 2.52MB + Index : 0.00MB + Moteur InnoDB
wp_mailpoet_scheduled_tasks: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_scheduled_task_subscribers: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_segments: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_sending_queues: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_settings: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_statistics_bounces: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_mailpoet_statistics_clicks: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_mailpoet_statistics_forms: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_statistics_newsletters: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_statistics_opens: DonnĂ©es : 0.02MB + Index : 0.08MB + Moteur InnoDB
wp_mailpoet_statistics_unsubscribes: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_mailpoet_statistics_woocommerce_purchases: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_mailpoet_stats_notifications: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_subscribers: DonnĂ©es : 0.02MB + Index : 0.13MB + Moteur InnoDB
wp_mailpoet_subscriber_custom_field: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_subscriber_ips: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_subscriber_segment: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_subscriber_tag: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_mailpoet_tags: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_user_agents: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_mailpoet_user_flags: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_options: DonnĂ©es : 5.50MB + Index : 0.14MB + Moteur InnoDB
wp_postmeta: DonnĂ©es : 7.50MB + Index : 0.36MB + Moteur InnoDB
wp_posts: DonnĂ©es : 2.52MB + Index : 0.13MB + Moteur InnoDB
wp_sd_subscribers: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_signups: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_smush_dir_images: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_snippets: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_sp_domain_mapping: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_termmeta: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_terms: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_term_relationships: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_term_taxonomy: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_tm_taskmeta: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_tm_tasks: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_usermeta: DonnĂ©es : 0.17MB + Index : 0.03MB + Moteur InnoDB
wp_users: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_wcpdf_invoice_number: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_wc_admin_notes: DonnĂ©es : 0.06MB + Index : 0.00MB + Moteur InnoDB
wp_wc_admin_note_actions: DonnĂ©es : 0.05MB + Index : 0.02MB + Moteur InnoDB
wp_wc_category_lookup: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_wc_customer_lookup: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_wc_download_log: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_wc_order_coupon_lookup: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_wc_order_product_lookup: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_wc_order_stats: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_wc_order_tax_lookup: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_wc_product_attributes_lookup: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_wc_product_download_directories: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_wc_product_meta_lookup: DonnĂ©es : 0.13MB + Index : 0.17MB + Moteur InnoDB
wp_wc_rate_limits: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_wc_reserved_stock: DonnĂ©es : 0.02MB + Index : 0.00MB + Moteur InnoDB
wp_wc_tax_rate_classes: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_wc_webhooks: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_wpr_rucss_resources: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_wpr_rucss_used_css: DonnĂ©es : 0.02MB + Index : 0.06MB + Moteur InnoDB
wp_yith_wcwl: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_yith_wcwl_lists: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_yoast_indexable: DonnĂ©es : 0.16MB + Index : 0.13MB + Moteur InnoDB
wp_yoast_indexable_hierarchy: DonnĂ©es : 0.02MB + Index : 0.05MB + Moteur InnoDB
wp_yoast_migrations: DonnĂ©es : 0.02MB + Index : 0.02MB + Moteur InnoDB
wp_yoast_primary_term: DonnĂ©es : 0.02MB + Index : 0.03MB + Moteur InnoDB
wp_yoast_seo_links: DonnĂ©es : 0.06MB + Index : 0.03MB + Moteur InnoDB

### Post Type Counts ###

afreg_fields: 1
attachment: 202
cmm4e_menu: 2
cmm4e_menu_theme: 2
custom_css: 1
def_reg_fields: 10
elementor_font: 9
elementor_library: 59
elementor_snippet: 1
elementskit_content: 9
groovy_menu_preset: 1
itsec-dash-card: 6
itsec-dashboard: 1
jet-menu: 6
mailpoet_page: 1
nav_menu_item: 6
oembed_cache: 1
page: 29
post: 9
process_posts: 1
product: 6
revision: 114
seedprod: 4
shop_order: 4
user_request: 1
viwec_template: 16
wp_global_styles: 2
wpmm_theme: 3
wppb-roles-editor: 10

### Security ###

Secure connection (HTTPS): ❌
					Votre boutique n’utilise pas HTTPS. En savoir plus sur HTTPS et les certificats SSL.
Hide errors from visitors: âś”

### Active Plugins (23) ###

All-in-One WP Migration: par ServMask – 6.77
Axeptio Cookies: par Dectys (Florian) – 1.0.0
CoCart - Headless ecommerce: par Sébastien Dumont – 3.7.7
Code Snippets: par Code Snippets Pro – 3.2.1
DriveWorks Block - Form Embed: par DriveWorks Ltd – 1.0.0
DriveWorks Shortcode - Form Embed: par DriveWorks Ltd – 1.0.1
DynamicConditions: par RTO GmbH – 1.6.0
Elementor Pro: par Elementor.com – 3.7.7
Elementor: par Elementor.com – 3.7.8
Essential Addons for Elementor: par WPDeveloper – 5.4.1
Health Check & Troubleshooting: par La communauté WordPress – 1.5.0
JetMenu: par Crocoblock – 2.2.3
Loco Translate: par Tim Whitlock – 2.6.3
UpdraftPlus - Backup/Restore: par UpdraftPlus.Com
DavidAnderson – 2.22.23.25

Converter for Media: par Image Optimization Team by matt plugins – 5.3.1
Paiements WooCommerce: par Automattic – 4.9.0
PDF Invoices & Packing Slips for WooCommerce: par WP Overnight – 3.2.2
WooCommerce Shipping & Tax: par WooCommerce – 1.26.3
WooCommerce: par Automattic – 7.0.0 (une mise à jour de la version 7.0.1 est disponible)
Yoast SEO: par L’équipe Yoast – 19.9
WP Rocket: par WP Media – 3.11.3
YITH WooCommerce Wishlist Premium: par YITH – 3.0.13

### Inactive Plugins (15) ###

Akismet Anti-Spam: par Automattic – 5.0
Broken Link Checker: par WPMU DEV – 1.11.18
ELEX WooCommerce Role-based Pricing Plugin & WooCommerce Catalog Mode: par ELEXtensions – 2.6.9
Hello Dolly: par Matt Mullenweg – 1.7.2
Imagify: par Imagify - Optimize Images & Convert WebP – 2.0
JetThemeCore: par Crocoblock – 2.0.6
JetWidgets for Elementor and WooCommerce: par Crocoblock – 1.1.4
Mailchimp for WooCommerce: par Mailchimp – 2.7.3
Product Filter for WooCommerce: par XforWooCommerce – 8.3.0
Profile Builder: par Cozmoslabs – 3.7.9
Profile Builder Pro: par Cozmoslabs – 3.7.7
StoreCustomizer: par Kaira – 2.4.3
Ultimate Addons for Elementor: par Brainstorm Force – 1.36.10
WooCommerce: par Automattic – 7.0.0 (une mise à jour de la version 7.0.1 est disponible)
WP Super Cache: par Automattic – 1.9

### Dropin Plugins (1) ###

advanced-cache.php: advanced-cache.php

### Must Use Plugins (1) ###

Health Check Troubleshooting Mode: par  – 1.8.0

### Settings ###

API Enabled: –
Force SSL: –
Currency: EUR (€)
Currency Position: right_space
Thousand Separator: 
Decimal Separator: ,
Number of Decimals: 2
Taxonomies: Product Types: external (external)
grouped (grouped)
simple (simple)
variable (variable)

Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
exclude-from-search (exclude-from-search)
featured (featured)
outofstock (outofstock)
rated-1 (rated-1)
rated-2 (rated-2)
rated-3 (rated-3)
rated-4 (rated-4)
rated-5 (rated-5)

Connected to WooCommerce.com: –
Enforce Approved Product Download Directories: –

### WC Pages ###

Base de la boutique: #6177 - /boutique/
Panier: ❌ La page ne contient pas le code court [woocommerce_cart] ou le bloc woocommerce/cart.
Commander: ❌ La page ne contient pas le code court [woocommerce_checkout] ou le bloc woocommerce/checkout.
Mon compte: ❌ La page ne contient pas le code court [woocommerce_my_account].
Conditions générales de vente et d’utilisation: #137 - /cgv/

### Theme ###

Name: Hello Elementor Child
Version: 2.5.0.1651821656
Author URL: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Child Theme: âś”
Parent Theme Name: Hello Elementor
Parent Theme Version: 2.6.1
Parent Theme Author URL: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
WooCommerce Support: âś”

### Templates ###

Overrides: hello-elementor-child/woocommerce/cart/cart.php

### Admin ###

Enabled Features: activity-panels
analytics
coupons
customer-effort-score-tracks
experimental-products-task
experimental-import-products-task
experimental-fashion-sample-products
experimental-product-tour
shipping-smart-defaults
shipping-setting-tour
homescreen
marketing
multichannel-marketing
mobile-app-banner
navigation
onboarding
onboarding-tasks
remote-inbox-notifications
remote-free-extensions
payment-gateway-suggestions
shipping-label-banner
subscriptions
store-alerts
transient-notices
woo-mobile-welcome
wc-pay-promotion
wc-pay-welcome-page

Disabled Features: minified-js
new-product-management-experience
settings

Daily Cron: âś” Next scheduled: 2022-10-29 08:33:41 +02:00
Options: âś”
Notes: 57
Onboarding: completed

### WooCommerce Payments ###

Version: 4.9.0
Connected to WPCOM: Non
Blog ID: -
Account ID: -

### Action Scheduler ###

Terminé: 103
Oldest: 2022-09-28 07:38:27 +0200
Newest: 2022-10-28 09:29:38 +0200

Échoué: 1
Oldest: 2022-08-22 09:51:31 +0200
Newest: 2022-08-22 09:51:31 +0200

En attente: 5
Oldest: 2022-10-28 21:20:05 +0200
Newest: 2022-11-02 10:47:26 +0100


### CoCart ###

Version: 3.7.7
Database Version: 3.7.7
Install Date: 28 October 2022
Carts in Session: 7
Carts Active: 7 out of 7 in session.
Carts Expiring Soon: 0 out of 7 in session.
Carts Expired: 0 out of 7 in session.
Carts Source (by CoCart): 2
Carts Source (by Web): 5
Carts Source (by Other): 0

### Status report information ###

Generated at: 2022-11-02 10:48:57 +01:00

Isolating the problem

  • I have deactivated other plugins and confirmed this bug occurs when only CoCart plugin is active.
  • I can reproduce this bug consistently using the steps above.

@nicolas-prigent-needone This has been improved already in the upcoming major update which is currently in development on the "dev" branch. I would read the NEXT_CHANGELOG.md for details.

If you have any further feedback please let me know. Thank you.