Metabase is data visualization software. Prior to versions 0.44.5, 1.44.5, 0.43.7, 1.43.7, 0.42.6, and 1.42.6, it was possible to circumvent locked parameters when requesting data for a question in an embedded dashboard by constructing a malicious request to the backend. This issue is patched in versions 0.44.5, 1.44.5, 0.43.7, 1.43.7, 0.42.6, and 1.42.6.
The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Metabase | Metabase | 0.42.0 (including) | 0.42.6 (excluding) |
Metabase | Metabase | 0.43.0 (including) | 0.43.7 (excluding) |
Metabase | Metabase | 0.44.0 (including) | 0.44.5 (excluding) |
Metabase | Metabase | 1.42.0 (including) | 1.42.6 (excluding) |
Metabase | Metabase | 1.43.0 (including) | 1.43.7 (excluding) |
Metabase | Metabase | 1.44.0 (including) | 1.44.5 (excluding) |
Locking is a type of synchronization behavior that ensures that multiple independently-operating processes or threads do not interfere with each other when accessing the same resource. All processes/threads are expected to follow the same steps for locking. If these steps are not followed precisely - or if no locking is done at all - then another process/thread could modify the shared resource in a way that is not visible or predictable to the original process. This can lead to data or memory corruption, denial of service, etc.