Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CVE-2020-22083 security vulnerability in botbuilder-python SDK #2078

Open
hisnkuanli opened this issue Feb 21, 2024 · 5 comments
Open

CVE-2020-22083 security vulnerability in botbuilder-python SDK #2078

hisnkuanli opened this issue Feb 21, 2024 · 5 comments
Labels
bug Indicates an unexpected problem or an unintended behavior. needs-triage The issue has just been created and it has not been reviewed by the team.

Comments

@hisnkuanli
Copy link

hisnkuanli commented Feb 21, 2024

Version

4.14.8

Describe the bug

There is a security vulnerability detected via Component Governance in DevOps. The severity is marked as Critical.

The details about this vulnerability:

image

In this SDK, the jsonpickle package is limited (>=1.2,<1.5), it is possible to use the latest version to avoid this security vulnerability?
Use version ranges 3rd party deps by cognifloyd · Pull Request #1468 · microsoft/botbuilder-python (github.com)

It is a blocking issue for our production service. Please help resolve it ASAP. Thanks.

To Reproduce

Use echo bot as an example, trigger a build in Azure DevOps, and enable Component Governance

Expected behavior

Pass Component Governance

Additional context

GHSA-j66q-qmrc-89rx
image

@hisnkuanli hisnkuanli added bug Indicates an unexpected problem or an unintended behavior. needs-triage The issue has just been created and it has not been reviewed by the team. labels Feb 21, 2024
@tracyboehrer
Copy link
Member

This is somewhat under dispute. pickle in Python itself would have the same behavior. The use case in SDK is that it's used to serialize objects in ConversationState to storage (Blobs or CosmosDB). We could clear the alert by implementing our own serialization, but the behavior would be exactly the same.

@tracyboehrer
Copy link
Member

Switching to version later that 1.4.2 do not change the alert for us. I really didn't expect it to.

Given:

"Both jsonpickle and pickle are documented as being able to execute arbitrary code when loading pickles, and intended for use only with trusted data. This is expected behaviour, as clearly indicated in the jsonpickle README and at https://docs.python.org/3/library/pickle.html"

And that this is only being used when storing/retrieving data for ConversationState and UserState (a trusted source), it is not of high risk.

We can continue to look for an alternative solution, but in the end it will still perform the same type actions.

@andrew-cybsafe
Copy link

Switching to version later that 1.4.2 do not change the alert for us. I really didn't expect it to.

Does botbuilder work on with v2 and v3? If so, can we update the dependency as this would help to prevent packages resolution issues for projects using botbuilder.

@tracyboehrer
Copy link
Member

The alert isn't accurate in that regard. The issue isn't the version, it's what it is doing. Which is pickle/unpickle.

This is used for serializing state storage to whatever storage is configured. It is assumed this is trusted and secure.

@pcanas
Copy link

pcanas commented Dec 19, 2024

Is there any update on this matter? jsonpickle<=1.5 has more than 4 years, would be great to upgrade this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or an unintended behavior. needs-triage The issue has just been created and it has not been reviewed by the team.
Projects
None yet
Development

No branches or pull requests

4 participants