Openembedded Core Discussions
 help / color / mirror / Atom feed
* [OE-core][scarthgap][PATCH] python3-click: fix CVE-2026-7246
@ 2026-08-21 16:32 Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  2026-09-05 23:16 ` Yoann Congal
  0 siblings, 1 reply; 6+ messages in thread
From: Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) @ 2026-08-21 16:32 UTC (permalink / raw)
  To: openembedded-core; +Cc: Darsh Kelaiya

From: Darsh Kelaiya <dkelaiya@cisco.com>

This patch applies the upstream fix for CVE-2026-7246 as referenced
in [2], using the upstream commit identified in [1].

The backport also adapts editor regression tests from the upstream
test and documentation follow-up identified in [3]. This follow-up
does not contain an additional production security fix.

[1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
[2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
[3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
---
 .../python/python3-click/CVE-2026-7246.patch  | 245 ++++++++++++++++++
 .../python/python3-click_8.1.7.bb             |   5 +-
 2 files changed, 249 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch

diff --git a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
new file mode 100644
index 0000000000..47ee1a551f
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
@@ -0,0 +1,245 @@
+From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
+From: Kevin Deldycke <kevin@deldycke.com>
+Date: Wed, 4 Mar 2026 14:51:58 +0400
+Subject: [PATCH] Document and fix command string sanitizing with `shlex.split`
+
+Removes last use of `shell=True` use for command invokation for defense-in-depth.
+Refs: #1026, #1477 and #2775
+
+CVE: CVE-2026-7246
+Upstream-Status: Backport [https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42]
+
+Backport Changes:
+- Click 8.1.7 uses Editor.edit_file(filename), not the newer
+  Editor.edit_files(filenames) API. Apply the argv-list change
+  to one filename without adding the multi-file API.
+- Adapt editor tests from b96c2601 and follow-up b5529479 to
+  the single-file API. Keep portable normalization, quoting,
+  failure, environment, Windows, and malformed-command cases.
+- Omit CHANGES.rst because release notes are not needed for
+  the source backport.
+- Omit pager changes and pager-only follow-up tests because
+  Click 8.1.7 uses older pager APIs and CVE-2026-7246 affects
+  click.edit(), not pager execution.
+- Omit the unrelated _translate_ch_to_exc() return cleanup.
+
+(cherry picked from commit b96c2601af4e01341b4d2c0db494ebee4aef8f42)
+Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
+---
+ src/click/_termui_impl.py |  10 ++-
+ tests/test_termui.py      | 163 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 172 insertions(+), 1 deletion(-)
+
+diff --git a/src/click/_termui_impl.py b/src/click/_termui_impl.py
+index f744657..3589160 100644
+--- a/src/click/_termui_impl.py
++++ b/src/click/_termui_impl.py
+@@ -501,6 +501,8 @@ class Editor:
+         return "vi"
+ 
+     def edit_file(self, filename: str) -> None:
++        """Open a file in the user's editor."""
++        import shlex
+         import subprocess
+ 
+         editor = self.get_editor()
+@@ -511,7 +513,13 @@ class Editor:
+             environ.update(self.env)
+ 
+         try:
+-            c = subprocess.Popen(f'{editor} "{filename}"', env=environ, shell=True)
++            # Split in POSIX mode (the default) for the same reasons as
++            # upstream pager(): strips quotes from tokens and preserves
++            # quoted Windows paths. See issue #1026 and PR #1477.
++            c = subprocess.Popen(
++                args=shlex.split(editor) + [filename],
++                env=environ,
++            )
+             exit_code = c.wait()
+             if exit_code != 0:
+                 raise ClickException(
+diff --git a/tests/test_termui.py b/tests/test_termui.py
+index 7cfa939..eda9a80 100644
+--- a/tests/test_termui.py
++++ b/tests/test_termui.py
+@@ -1,10 +1,12 @@
+ import platform
+ import time
++from unittest.mock import patch
+ 
+ import pytest
+ 
+ import click._termui_impl
+ from click._compat import WIN
++from click._termui_impl import Editor
+ 
+ 
+ class FakeClock:
+@@ -369,6 +371,167 @@ def test_fast_edit(runner):
+     assert result == "aTest\nbTest\n"
+ 
+ 
++@pytest.mark.parametrize(
++    ("editor_cmd", "filename", "expected_args"),
++    [
++        pytest.param(
++            "myeditor --wait --flag",
++            "file1.txt",
++            ["myeditor", "--wait", "--flag", "file1.txt"],
++            id="editor with args",
++        ),
++        pytest.param(
++            "vi",
++            'file"; rm -rf / ; echo "',
++            ["vi", 'file"; rm -rf / ; echo "'],
++            id="shell metacharacters in filename",
++        ),
++        # Issue #1026: editor path with spaces must be quoted.
++        pytest.param(
++            '"C:\\Program Files\\Sublime Text 3\\sublime_text.exe"',
++            "f.txt",
++            ["C:\\Program Files\\Sublime Text 3\\sublime_text.exe", "f.txt"],
++            id="quoted windows path with spaces (issue 1026)",
++        ),
++        # PR #1477: pager/editor command with flags, like ``less -FRSX``.
++        pytest.param(
++            "less -FRSX",
++            "f.txt",
++            ["less", "-FRSX", "f.txt"],
++            id="command with flags (pr 1477)",
++        ),
++        # Issue #1026: quoted command with ``--wait`` flag.
++        pytest.param(
++            '"my command" --option value arg',
++            "f.txt",
++            ["my command", "--option", "value", "arg", "f.txt"],
++            id="quoted command with args (issue 1026)",
++        ),
++        # PR #1477: unquoted Unix path.
++        pytest.param(
++            "/usr/bin/vim",
++            "f.txt",
++            ["/usr/bin/vim", "f.txt"],
++            id="unix absolute path",
++        ),
++        # Issue #1026: macOS path with escaped space.
++        pytest.param(
++            "/Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl",
++            "f.txt",
++            ["/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "f.txt"],
++            id="escaped space in unix path (issue 1026)",
++        ),
++        pytest.param(
++            "  vim  ",
++            "f.txt",
++            ["vim", "f.txt"],
++            id="leading and trailing whitespace",
++        ),
++        pytest.param(
++            "vim\t--clean",
++            "f.txt",
++            ["vim", "--clean", "f.txt"],
++            id="tab-separated tokens",
++        ),
++        pytest.param(
++            "'/Applications/My Editor.app/Contents/MacOS/editor'",
++            "f.txt",
++            ["/Applications/My Editor.app/Contents/MacOS/editor", "f.txt"],
++            id="single-quoted path with spaces",
++        ),
++        pytest.param(
++            '"my editor" --wait --new-window',
++            "file 1.txt",
++            ["my editor", "--wait", "--new-window", "file 1.txt"],
++            id="quoted editor with flags and filename with spaces",
++        ),
++        pytest.param(
++            "vim -u NONE -N",
++            "f.txt",
++            ["vim", "-u", "NONE", "-N", "f.txt"],
++            id="multiple short flags",
++        ),
++        pytest.param(
++            "editor",
++            'file"name.txt',
++            ["editor", 'file"name.txt'],
++            id="filename with double quote",
++        ),
++        pytest.param(
++            "editor",
++            "file'name.txt",
++            ["editor", "file'name.txt"],
++            id="filename with single quote",
++        ),
++    ],
++)
++def test_editor_path_normalization(editor_cmd, filename, expected_args):
++    with patch("subprocess.Popen") as mock_popen:
++        mock_popen.return_value.wait.return_value = 0
++        Editor(editor=editor_cmd).edit_file(filename)
++
++        mock_popen.assert_called_once()
++        args = mock_popen.call_args[1].get("args") or mock_popen.call_args[0][0]
++        assert args == expected_args
++        assert mock_popen.call_args[1].get("shell") is None
++
++
++@pytest.mark.skipif(not WIN, reason="Windows-specific editor paths")
++@pytest.mark.parametrize(
++    ("editor_cmd", "expected_cmd"),
++    [
++        pytest.param(
++            "notepad",
++            ["notepad"],
++            id="plain notepad",
++        ),
++        pytest.param(
++            '"C:\\Program Files\\Sublime Text 3\\sublime_text.exe" --wait',
++            ["C:\\Program Files\\Sublime Text 3\\sublime_text.exe", "--wait"],
++            id="quoted path with flag",
++        ),
++    ],
++)
++def test_editor_windows_path_normalization(editor_cmd, expected_cmd):
++    """Verify that Popen receives unquoted Windows editor paths."""
++    with patch("subprocess.Popen") as mock_popen:
++        mock_popen.return_value.wait.return_value = 0
++        Editor(editor=editor_cmd).edit_file("f.txt")
++
++        args = mock_popen.call_args[1].get("args") or mock_popen.call_args[0][0]
++        assert args == expected_cmd + ["f.txt"]
++        assert mock_popen.call_args[1].get("shell") is None
++
++
++def test_editor_env_passed_through():
++    with patch("subprocess.Popen") as mock_popen:
++        mock_popen.return_value.wait.return_value = 0
++        Editor(editor="vi", env={"MY_VAR": "1"}).edit_file("f.txt")
++
++        env = mock_popen.call_args[1].get("env")
++        assert env is not None
++        assert env["MY_VAR"] == "1"
++
++
++def test_editor_failure_exception():
++    with patch("subprocess.Popen") as mock_popen:
++        mock_popen.return_value.wait.return_value = 1
++        with pytest.raises(click.ClickException, match="Editing failed"):
++            Editor(editor="vi").edit_file("f.txt")
++
++
++def test_editor_nonexistent_exception():
++    with patch("subprocess.Popen", side_effect=OSError("not found")):
++        with pytest.raises(click.ClickException, match="not found"):
++            Editor(editor="nonexistent").edit_file("f.txt")
++
++
++def test_editor_unclosed_quote():
++    """An unclosed quote in the editor command raises ValueError."""
++    with pytest.raises(ValueError, match="No closing quotation"):
++        Editor(editor='"unclosed').edit_file("f.txt")
++
++
+ @pytest.mark.parametrize(
+     ("prompt_required", "required", "args", "expect"),
+     [
diff --git a/meta/recipes-devtools/python/python3-click_8.1.7.bb b/meta/recipes-devtools/python/python3-click_8.1.7.bb
index 7d91e1af83..3c6f4df5e2 100644
--- a/meta/recipes-devtools/python/python3-click_8.1.7.bb
+++ b/meta/recipes-devtools/python/python3-click_8.1.7.bb
@@ -12,7 +12,9 @@ SRC_URI[sha256sum] = "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b
 
 inherit pypi setuptools3 ptest
 
-SRC_URI += "file://run-ptest"
+SRC_URI += "file://run-ptest \
+            file://CVE-2026-7246.patch \
+           "
 
 RDEPENDS:${PN}-ptest += " \
 	python3-pytest \
@@ -34,6 +36,7 @@ CLEANBROKEN = "1"
 RDEPENDS:${PN} += "\
     python3-io \
     python3-threading \
+    python3-shell \
     "
 
 BBCLASSEXTEND = "native nativesdk"
-- 
2.35.6



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [OE-core][scarthgap][PATCH] python3-click: fix CVE-2026-7246
  2026-08-21 16:32 [OE-core][scarthgap][PATCH] python3-click: fix CVE-2026-7246 Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
@ 2026-09-05 23:16 ` Yoann Congal
  2026-09-07  9:26   ` [scarthgap][PATCH] " Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  0 siblings, 1 reply; 6+ messages in thread
From: Yoann Congal @ 2026-09-05 23:16 UTC (permalink / raw)
  To: dkelaiya, openembedded-core

On Fri Aug 21, 2026 at 6:32 PM CEST, Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
> From: Darsh Kelaiya <dkelaiya@cisco.com>
>
> This patch applies the upstream fix for CVE-2026-7246 as referenced
> in [2], using the upstream commit identified in [1].
>
> The backport also adapts editor regression tests from the upstream
> test and documentation follow-up identified in [3]. This follow-up
> does not contain an additional production security fix.
>
> [1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
> [2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
> [3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976
>
> Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
> ---
>  .../python/python3-click/CVE-2026-7246.patch  | 245 ++++++++++++++++++
>  .../python/python3-click_8.1.7.bb             |   5 +-
>  2 files changed, 249 insertions(+), 1 deletion(-)
>  create mode 100644 meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>
> diff --git a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
> new file mode 100644
> index 0000000000..47ee1a551f
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
> @@ -0,0 +1,245 @@
> +From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
> +From: Kevin Deldycke <kevin@deldycke.com>
> +Date: Wed, 4 Mar 2026 14:51:58 +0400
> +Subject: [PATCH] Document and fix command string sanitizing with `shlex.split`
> +
> +Removes last use of `shell=True` use for command invokation for defense-in-depth.
> +Refs: #1026, #1477 and #2775
> +
> +CVE: CVE-2026-7246
> +Upstream-Status: Backport [https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42]
> +
> +Backport Changes:
> +- Click 8.1.7 uses Editor.edit_file(filename), not the newer
> +  Editor.edit_files(filenames) API. Apply the argv-list change
> +  to one filename without adding the multi-file API.
> +- Adapt editor tests from b96c2601 and follow-up b5529479 to

Hello,

This commit has both b96c2601 and b5529479 squashed. Please keep
upstream backport patches split.

Can you send a v2 with as the CVE fix (b96c2601) and its followup
(b5529479)?

Thanks!

-- 
Yoann Congal
Smile ECS



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [scarthgap][PATCH] python3-click: fix CVE-2026-7246
  2026-09-05 23:16 ` Yoann Congal
@ 2026-09-07  9:26   ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  2026-09-15  6:33     ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  2026-09-21  9:56     ` [OE-core] " Yoann Congal
  0 siblings, 2 replies; 6+ messages in thread
From: Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) @ 2026-09-07  9:26 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3415 bytes --]

On Sun, Sep 6, 2026 at 04:46 AM, Yoann Congal wrote:

> 
> On Fri Aug 21, 2026 at 6:32 PM CEST, Darsh Kelaiya -X (dkelaiya - E
> INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
> 
>> From: Darsh Kelaiya <dkelaiya@cisco.com>
>> 
>> This patch applies the upstream fix for CVE-2026-7246 as referenced
>> in [2], using the upstream commit identified in [1].
>> 
>> The backport also adapts editor regression tests from the upstream
>> test and documentation follow-up identified in [3]. This follow-up
>> does not contain an additional production security fix.
>> 
>> [1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>> 
>> [2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>> 
>> [3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976
>> 
>> 
>> Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
>> ---
>> .../python/python3-click/CVE-2026-7246.patch | 245 ++++++++++++++++++
>> .../python/python3-click_8.1.7.bb | 5 +-
>> 2 files changed, 249 insertions(+), 1 deletion(-)
>> create mode 100644
>> meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>> 
>> diff --git
>> a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>> b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>> new file mode 100644
>> index 0000000000..47ee1a551f
>> --- /dev/null
>> +++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>> @@ -0,0 +1,245 @@
>> +From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
>> +From: Kevin Deldycke <kevin@deldycke.com>
>> +Date: Wed, 4 Mar 2026 14:51:58 +0400
>> +Subject: [PATCH] Document and fix command string sanitizing with
>> `shlex.split`
>> +
>> +Removes last use of `shell=True` use for command invokation for
>> defense-in-depth.
>> +Refs: #1026, #1477 and #2775
>> +
>> +CVE: CVE-2026-7246
>> +Upstream-Status: Backport [ https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>> ]
>> +
>> +Backport Changes:
>> +- Click 8.1.7 uses Editor.edit_file(filename), not the newer
>> + Editor.edit_files(filenames) API. Apply the argv-list change
>> + to one filename without adding the multi-file API.
>> +- Adapt editor tests from b96c2601 and follow-up b5529479 to
> 
> Hello,
> 
> This commit has both b96c2601 and b5529479 squashed. Please keep
> upstream backport patches split.
> 
> Can you send a v2 with as the CVE fix (b96c2601) and its followup
> (b5529479)?
> 
> Thanks!
> 
> --
> Yoann Congal
> Smile ECS

Hi Yoann,

While preparing v2, I noticed that NVD now marks CVE-2026-7246 as disputed and states that the Pallets Click project does not consider it a valid vulnerability:

https://nvd.nist.gov/vuln/detail/CVE-2026-7246

However, the published advisory identifies upstream commit b96c2601 as the fix:

https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw

Upstream describes the removal of shell=True as defense-in-depth, so I wanted to confirm the preferred handling. Should I replace the backport patches with a status entry such as:

CVE_STATUS[CVE-2026-7246] = "disputed: Pallets Click does not consider this a valid vulnerability"

Or should I continue with the split v2 backport patches as hardening?

Thanks,
Darsh

[-- Attachment #2: Type: text/html, Size: 4324 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [scarthgap][PATCH] python3-click: fix CVE-2026-7246
  2026-09-07  9:26   ` [scarthgap][PATCH] " Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
@ 2026-09-15  6:33     ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  2026-09-21  9:56     ` [OE-core] " Yoann Congal
  1 sibling, 0 replies; 6+ messages in thread
From: Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) @ 2026-09-15  6:33 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3782 bytes --]

On Mon, Sep 7, 2026 at 02:56 PM, Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) wrote:

> 
> On Sun, Sep 6, 2026 at 04:46 AM, Yoann Congal wrote:
> 
>> On Fri Aug 21, 2026 at 6:32 PM CEST, Darsh Kelaiya -X (dkelaiya - E
>> INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
>> 
>>> From: Darsh Kelaiya <dkelaiya@cisco.com>
>>> 
>>> This patch applies the upstream fix for CVE-2026-7246 as referenced
>>> in [2], using the upstream commit identified in [1].
>>> 
>>> The backport also adapts editor regression tests from the upstream
>>> test and documentation follow-up identified in [3]. This follow-up
>>> does not contain an additional production security fix.
>>> 
>>> [1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>> 
>>> [2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>>> 
>>> [3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976
>>> 
>>> 
>>> Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
>>> ---
>>> .../python/python3-click/CVE-2026-7246.patch | 245 ++++++++++++++++++
>>> .../python/python3-click_8.1.7.bb | 5 +-
>>> 2 files changed, 249 insertions(+), 1 deletion(-)
>>> create mode 100644
>>> meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> 
>>> diff --git
>>> a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> new file mode 100644
>>> index 0000000000..47ee1a551f
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> @@ -0,0 +1,245 @@
>>> +From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
>>> +From: Kevin Deldycke <kevin@deldycke.com>
>>> +Date: Wed, 4 Mar 2026 14:51:58 +0400
>>> +Subject: [PATCH] Document and fix command string sanitizing with
>>> `shlex.split`
>>> +
>>> +Removes last use of `shell=True` use for command invokation for
>>> defense-in-depth.
>>> +Refs: #1026, #1477 and #2775
>>> +
>>> +CVE: CVE-2026-7246
>>> +Upstream-Status: Backport [ https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>> ]
>>> +
>>> +Backport Changes:
>>> +- Click 8.1.7 uses Editor.edit_file(filename), not the newer
>>> + Editor.edit_files(filenames) API. Apply the argv-list change
>>> + to one filename without adding the multi-file API.
>>> +- Adapt editor tests from b96c2601 and follow-up b5529479 to
>> 
>> Hello,
>> 
>> This commit has both b96c2601 and b5529479 squashed. Please keep
>> upstream backport patches split.
>> 
>> Can you send a v2 with as the CVE fix (b96c2601) and its followup
>> (b5529479)?
>> 
>> Thanks!
>> 
>> --
>> Yoann Congal
>> Smile ECS
> 
> Hi Yoann,
> 
> While preparing v2, I noticed that NVD now marks CVE-2026-7246 as disputed
> and states that the Pallets Click project does not consider it a valid
> vulnerability:
> 
> https://nvd.nist.gov/vuln/detail/CVE-2026-7246
> 
> However, the published advisory identifies upstream commit b96c2601 as the
> fix:
> 
> https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
> 
> 
> Upstream describes the removal of shell=True as defense-in-depth, so I
> wanted to confirm the preferred handling. Should I replace the backport
> patches with a status entry such as:
> 
> CVE_STATUS[CVE-2026-7246] = "disputed: Pallets Click does not consider
> this a valid vulnerability"
> 
> Or should I continue with the split v2 backport patches as hardening?
> 
> Thanks,
> Darsh
> 

Hello, Yoann

I hope you are doing well. Could you please share if there are any updates on this?

Thanks,
Darsh

[-- Attachment #2: Type: text/html, Size: 4624 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [scarthgap][PATCH] python3-click: fix CVE-2026-7246
  2026-09-07  9:26   ` [scarthgap][PATCH] " Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  2026-09-15  6:33     ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
@ 2026-09-21  9:56     ` Yoann Congal
  2026-09-23  7:02       ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  1 sibling, 1 reply; 6+ messages in thread
From: Yoann Congal @ 2026-09-21  9:56 UTC (permalink / raw)
  To: dkelaiya, openembedded-core

On Mon Sep 7, 2026 at 11:26 AM CEST, Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
> On Sun, Sep 6, 2026 at 04:46 AM, Yoann Congal wrote:
>
>> 
>> On Fri Aug 21, 2026 at 6:32 PM CEST, Darsh Kelaiya -X (dkelaiya - E
>> INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
>> 
>>> From: Darsh Kelaiya <dkelaiya@cisco.com>
>>> 
>>> This patch applies the upstream fix for CVE-2026-7246 as referenced
>>> in [2], using the upstream commit identified in [1].
>>> 
>>> The backport also adapts editor regression tests from the upstream
>>> test and documentation follow-up identified in [3]. This follow-up
>>> does not contain an additional production security fix.
>>> 
>>> [1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>> 
>>> [2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>>> 
>>> [3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976
>>> 
>>> 
>>> Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
>>> ---
>>> .../python/python3-click/CVE-2026-7246.patch | 245 ++++++++++++++++++
>>> .../python/python3-click_8.1.7.bb | 5 +-
>>> 2 files changed, 249 insertions(+), 1 deletion(-)
>>> create mode 100644
>>> meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> 
>>> diff --git
>>> a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> new file mode 100644
>>> index 0000000000..47ee1a551f
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>> @@ -0,0 +1,245 @@
>>> +From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
>>> +From: Kevin Deldycke <kevin@deldycke.com>
>>> +Date: Wed, 4 Mar 2026 14:51:58 +0400
>>> +Subject: [PATCH] Document and fix command string sanitizing with
>>> `shlex.split`
>>> +
>>> +Removes last use of `shell=True` use for command invokation for
>>> defense-in-depth.
>>> +Refs: #1026, #1477 and #2775
>>> +
>>> +CVE: CVE-2026-7246
>>> +Upstream-Status: Backport [ https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>> ]
>>> +
>>> +Backport Changes:
>>> +- Click 8.1.7 uses Editor.edit_file(filename), not the newer
>>> + Editor.edit_files(filenames) API. Apply the argv-list change
>>> + to one filename without adding the multi-file API.
>>> +- Adapt editor tests from b96c2601 and follow-up b5529479 to
>> 
>> Hello,
>> 
>> This commit has both b96c2601 and b5529479 squashed. Please keep
>> upstream backport patches split.
>> 
>> Can you send a v2 with as the CVE fix (b96c2601) and its followup
>> (b5529479)?
>> 
>> Thanks!
>> 
>> --
>> Yoann Congal
>> Smile ECS
>
> Hi Yoann,
>
> While preparing v2, I noticed that NVD now marks CVE-2026-7246 as disputed and states that the Pallets Click project does not consider it a valid vulnerability:
>
> https://nvd.nist.gov/vuln/detail/CVE-2026-7246
>
> However, the published advisory identifies upstream commit b96c2601 as the fix:
>
> https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>
> Upstream describes the removal of shell=True as defense-in-depth, so I wanted to confirm the preferred handling. Should I replace the backport patches with a status entry such as:
>
> CVE_STATUS[CVE-2026-7246] = "disputed: Pallets Click does not consider this a valid vulnerability"
>
> Or should I continue with the split v2 backport patches as hardening?

Hello,

It depends on the patch complexity: If it is small and easely
understandable let's backport it. If not, we can ignore it but I'd like
to see the Pallets Click project reasonning for disputing it please.

Thanks!
-- 
Yoann Congal
Smile ECS



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [scarthgap][PATCH] python3-click: fix CVE-2026-7246
  2026-09-21  9:56     ` [OE-core] " Yoann Congal
@ 2026-09-23  7:02       ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
  0 siblings, 0 replies; 6+ messages in thread
From: Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco) @ 2026-09-23  7:02 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 4623 bytes --]

Hello Yoann,

Thanks for the feedback.

The upstream fix and its follow-up are kept as separate patches in v2. Since the follow-up is small and self-contained, I have included the backport, as shown in [1].

For reference, the NVD record [2] documents the Pallets Click project’s position regarding the disputed CVE.

[1] https://lists.openembedded.org/g/openembedded-core/message/246451
[2] https://nvd.nist.gov/vuln/detail/cve-2026-7246

Best regards,
Darsh

On Mon, Sep 21, 2026 at 03:26 PM, Yoann Congal wrote:

> 
> On Mon Sep 7, 2026 at 11:26 AM CEST, Darsh Kelaiya -X (dkelaiya - E
> INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
> 
>> On Sun, Sep 6, 2026 at 04:46 AM, Yoann Congal wrote:
>> 
>> 
>>> 
>>> On Fri Aug 21, 2026 at 6:32 PM CEST, Darsh Kelaiya -X (dkelaiya - E
>>> INFOCHIPS PRIVATE LIMITED at Cisco) via lists.openembedded.org wrote:
>>> 
>>> 
>>>> From: Darsh Kelaiya <dkelaiya@cisco.com>
>>>> 
>>>> This patch applies the upstream fix for CVE-2026-7246 as referenced
>>>> in [2], using the upstream commit identified in [1].
>>>> 
>>>> The backport also adapts editor regression tests from the upstream
>>>> test and documentation follow-up identified in [3]. This follow-up
>>>> does not contain an additional production security fix.
>>>> 
>>>> [1] https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>>> 
>>>> 
>>>> [2] https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>>>> 
>>>> 
>>>> [3] https://github.com/pallets/click/commit/b55294797ef32e22eb41e7d9657edb8faefa4976
>>>> 
>>>> 
>>>> 
>>>> Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
>>>> ---
>>>> .../python/python3-click/CVE-2026-7246.patch | 245 ++++++++++++++++++
>>>> .../python/python3-click_8.1.7.bb | 5 +-
>>>> 2 files changed, 249 insertions(+), 1 deletion(-)
>>>> create mode 100644
>>>> meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>>> 
>>>> diff --git
>>>> a/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>>> b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>>> new file mode 100644
>>>> index 0000000000..47ee1a551f
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/python/python3-click/CVE-2026-7246.patch
>>>> @@ -0,0 +1,245 @@
>>>> +From cb30f575b1a251e8698909bca2a443d41dad1824 Mon Sep 17 00:00:00 2001
>>>> +From: Kevin Deldycke <kevin@deldycke.com>
>>>> +Date: Wed, 4 Mar 2026 14:51:58 +0400
>>>> +Subject: [PATCH] Document and fix command string sanitizing with
>>>> `shlex.split`
>>>> +
>>>> +Removes last use of `shell=True` use for command invokation for
>>>> defense-in-depth.
>>>> +Refs: #1026, #1477 and #2775
>>>> +
>>>> +CVE: CVE-2026-7246
>>>> +Upstream-Status: Backport [ https://github.com/pallets/click/commit/b96c2601af4e01341b4d2c0db494ebee4aef8f42
>>>> 
>>>> ]
>>>> +
>>>> +Backport Changes:
>>>> +- Click 8.1.7 uses Editor.edit_file(filename), not the newer
>>>> + Editor.edit_files(filenames) API. Apply the argv-list change
>>>> + to one filename without adding the multi-file API.
>>>> +- Adapt editor tests from b96c2601 and follow-up b5529479 to
>>> 
>>> Hello,
>>> 
>>> This commit has both b96c2601 and b5529479 squashed. Please keep
>>> upstream backport patches split.
>>> 
>>> Can you send a v2 with as the CVE fix (b96c2601) and its followup
>>> (b5529479)?
>>> 
>>> Thanks!
>>> 
>>> --
>>> Yoann Congal
>>> Smile ECS
>> 
>> Hi Yoann,
>> 
>> While preparing v2, I noticed that NVD now marks CVE-2026-7246 as disputed
>> and states that the Pallets Click project does not consider it a valid
>> vulnerability:
>> 
>> https://nvd.nist.gov/vuln/detail/CVE-2026-7246
>> 
>> However, the published advisory identifies upstream commit b96c2601 as the
>> fix:
>> 
>> https://github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
>> 
>> 
>> Upstream describes the removal of shell=True as defense-in-depth, so I
>> wanted to confirm the preferred handling. Should I replace the backport
>> patches with a status entry such as:
>> 
>> CVE_STATUS[CVE-2026-7246] = "disputed: Pallets Click does not consider
>> this a valid vulnerability"
>> 
>> Or should I continue with the split v2 backport patches as hardening?
> 
> Hello,
> 
> It depends on the patch complexity: If it is small and easely
> understandable let's backport it. If not, we can ignore it but I'd like
> to see the Pallets Click project reasonning for disputing it please.
> 
> Thanks!
> --
> Yoann Congal
> Smile ECS

[-- Attachment #2: Type: text/html, Size: 5717 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-23  7:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-21 16:32 [OE-core][scarthgap][PATCH] python3-click: fix CVE-2026-7246 Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
2026-09-05 23:16 ` Yoann Congal
2026-09-07  9:26   ` [scarthgap][PATCH] " Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
2026-09-15  6:33     ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)
2026-09-21  9:56     ` [OE-core] " Yoann Congal
2026-09-23  7:02       ` Darsh Kelaiya -X (dkelaiya - E INFOCHIPS PRIVATE LIMITED at Cisco)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox