Arbitrary Code Execution Vulnerability in Tablib Package

python-tablib Updated 02 Oct 2025

Summary

14/06/2017
N/A
Yes i
Critical
9.8

CVE-2017-2810: An exploitable vulnerability exists in the Databook loading functionality of Tablib 0.11.4. Affects python-tablib versions < 0.9.11-3. Fixed in 0.9.11-3. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored Devnack Penetration testing for web, API and mobile Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

Tablib is a popular Python library used for data serialization and import/export in various formats such as Excel, JSON, and YAML. It provides a simple interface for managing datasets and is widely utilized in data analysis and reporting applications. However, a critical vulnerability has been identified in version 0.11.4, which allows for the execution of arbitrary Python commands through malicious YAML files.

Vulnerability Detail

The vulnerability, identified as CVE-2017-2810, arises from the Databook loading functionality in Tablib. When a YAML file is loaded, it can contain embedded Python code that gets executed, leading to potential command execution on the host system. This flaw can be exploited by an attacker who crafts a malicious YAML file, allowing them to execute arbitrary commands, which could compromise the integrity and security of the application and the system it runs on.

How To Fix

Minimum fixed version

0.9.11-3

This is the first release that contains the fix.

sudo apt-get install --only-upgrade python-tablib

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If upgrading is not immediately possible, a temporary workaround is to avoid loading YAML files from untrusted sources. Additionally, consider using alternative serialization formats that do not allow for code execution, such as JSON.

Conclusion

The CVE-2017-2810 vulnerability in the Tablib package poses a significant risk due to its ability to execute arbitrary code through malicious YAML files. Users are strongly advised to upgrade to a secure version of the package or implement workarounds to mitigate the risk. Regular monitoring for vulnerabilities using tools like Vulert can help maintain application security.

See every vulnerability recorded for python-tablib →

Share this vulnerability

FAQ

CVE-2017-2810 is a vulnerability in the Tablib package that allows for arbitrary code execution through malicious YAML files.

You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.

Exploiting this vulnerability can lead to unauthorized command execution, potentially compromising the system's security and integrity.

If upgrading is not feasible, avoid loading YAML files from untrusted sources and consider using safer serialization formats.

The CVSS score for CVE-2017-2810 is 9.8, indicating a critical level of severity.

Related vulnerabilities

Recent vulnerabilities recorded for python-tablib.

How To Fix

Minimum fixed version

0.9.11-3

This is the first release that contains the fix.

sudo apt-get install --only-upgrade python-tablib

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback