vuln-osv update 2026-11-13T00:44:09Z
This commit is contained in:
1 parent
8a2c5b2e77
commit
ccfb9c50cb
167 files changed
+200
-83
No files matched your search
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"GHSA-wqgw-9xfh-qf2g","published":"2026-11-12T23:35:39Z","modified":"2026-11-12T23:45:03.298534910Z","aliases":["CVE-2026-128066"],"summary":"Pillow: Memory DoS in TIFF and EXIF IFD parsing via overlapping tag data","details":"```\n============================================================================\nANT-2026-D7STJUWL [medium] CWE-770 dos\nMemory DoS in TIFF and EXIF IFD parsing via overlapping tag data\nLocation: src/PIL/TiffImagePlugin.py:927 in ImageFileDirectory_v2.load()\nCommit: a707c6b21c313880d0771e54965d142dd42358b6\n============================================================================\n```\n\nA small, crafted image file can make Pillow use thousands of times its own size in memory while the file is only being opened, which lets anyone who can submit an image crash or stall the process handling it. A 144 KB TIFF makes `Image.open()` return normally while holding 1.6 GiB of memory. The largest such standard TIFF, about 786 KB, asks for roughly 48 GiB, which in practice gets the worker killed by the operating system. The file declares a 1×1 image, so the decompression-bomb check never triggers and no warning is raised. There is no memory corruption; the impact is denial of service.\n\nThe bug is in `ImageFileDirectory_v2.load()` in `src/PIL/TiffImagePlugin.py` (around line 927). For every directory entry whose value is stored elsewhere in the file, it reads that value into a new `bytes` object with `ImageFile._safe_read(fp, count * unit_size)` and keeps it in `_tagdata`. `_safe_read()` only checks that the bytes exist. Nothing limits the total read across entries, and nothing stops every entry from pointing at the same bytes. An attacker can therefore give each of N distinct private tags an offset and count that covers the whole file, at a cost of 12 bytes per entry. Memory grows as N × file size, which is quadratic in the file size, and BigTIFF removes the 65,535-entry ceiling.\n\nThe same loop parses EXIF data, so the problem reaches beyond TIFF:\n\n* A 66 KB JPEG APP1 segment costs about 340 MiB inside `Image.open()` itself, via `_read_dpi_from_exif()`.\n* A 96 KB PNG `eXIf` chunk costs 754 MiB on `getexif()` or `ImageOps.exif_transpose()`.\n* WebP EXIF and MPO reach the same code.\n\nThe attached reproducer builds a 72 KB TIFF and a 72 KB PNG. Using only `Image.open()` and `getexif()`, each causes 412 MiB of tag data to be retained, about 6,000 times the file size. The loop dates to the original PIL 1.1.7 import, so every Pillow release since 1.0 is affected.\n\n## Details\n\n`TiffImagePlugin.ImageFileDirectory_v2.load()` reads the out-of-line value of every IFD entry into its own `bytes` object and keeps it in `self._tagdata`. Nothing bounds the sum of those reads, and nothing prevents every entry from pointing at the same region of the file. An IFD with N entries whose `(offset, count)` each cover the whole file therefore costs N × filesize bytes of memory, while the IFD itself costs only 12 bytes per entry. This one loop is the IFD parser for TIFF frames and for `Image.Exif` alike, so it is reachable from `Image.open()` on a TIFF or JPEG and from `getexif()` / `ImageOps.exif_transpose()` on PNG, JPEG, WebP and MPO.\n\nObserved on the stock build at this commit: a valid 144,110-byte 1×1 greyscale TIFF with 12,000 such entries makes `Image.open()` return normally (no exception, no warning, 1 declared pixel so `MAX_IMAGE_PIXELS` is irrelevant) after 1.5 s, with the process RSS grown from 15 MiB to 1,671 MiB and `im.tag_v2` holding 1,649 MiB of tag data for as long as the image object lives. The same IFD placed in the `eXIf` chunk of a 96 KB PNG makes `im.getexif()` retain 754 MiB. A 65,870-byte JPEG whose APP1 `Exif` segment is such an IFD (5,400 entries × 65,519 bytes) allocates ~340 MiB inside `Image.open()` itself, with no further call.\n\n```python\n# src/PIL/TiffImagePlugin.py:902-946 (ImageFileDirectory_v2.load)\nfor i in range(tag_count):\n tag, typ, count, data = ( … self._unpack(\"HHL4s\", self._ensure_read(fp, 12)))\n …\n size = count * unit_size # 918: attacker-chosen\n if size > (8 if self._bigtiff else 4):\n here = fp.tell()\n (offset,) = self._unpack(\"Q\" if self._bigtiff else \"L\", data)\n …\n fp.seek(offset) # 926: attacker-chosen\n data = ImageFile._safe_read(fp, size) # 927: new bytes object of `size`\n fp.seek(here)\n …\n self._tagdata[tag] = data # 945: kept\n self.tagtype[tag] = typ\n```\n\n`ImageFile._safe_read()` only guarantees that `size` bytes are actually present in the stream (it reads in `SAFEBLOCK` chunks and raises on truncation); it is a guard against allocating for data that does not exist, not against reading the same existing data many times. For a well-formed file each entry points at its own disjoint value, so the total read is at most the file sizeLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"GHSA-xcvg-w56q-r89m","published":"2026-11-12T23:34:43Z","modified":"2026-11-12T23:45:03.322245161Z","aliases":["CVE-2026-128067"],"summary":"Pillow: Heap buffer overflow saving TIFF with libtiff when tags override image size","details":"```\n============================================================================\nANT-2026-CS7N494P [high] CWE-787 memory-safety\nHeap buffer overflow saving TIFF with libtiff when tags override image size\nLocation: src/libImaging/TiffDecode.c:1035 in ImagingLibTiffEncode()\nCommit: a707c6b21c313880d0771e54965d142dd42358b6\n============================================================================\n```\n\nWhen Pillow saves an image as a compressed TIFF, size information taken from the image's metadata can make the encoder read past the end of a heap buffer. Someone who uploads an image can use this to get the server process's memory, including pointers, copied into the saved file, or to crash the process. When the metadata also enables TIFF \"Predictor=2\" compression, the encoder writes past the buffer instead, corrupting the heap and aborting the process. This affects applications that write TIFF through libtiff (any `compression=` other than raw) and either carry the source metadata across with `exif=im.getexif()` / `tiffinfo=`, or simply re-save a crafted palette TIFF with `Image.open(f).save(out, \"TIFF\")`, which inherits its compression and predictor from the upload.\n\nIn `TiffImagePlugin._save`'s libtiff branch, only `BitsPerSample` is pinned to the real image when the tag list for the encoder is built (`src/PIL/TiffImagePlugin.py:1955`). `ImageWidth`, `ImageLength` and `PlanarConfiguration` are set from `im.size` but are then overwritten by the `exif=`/`tiffinfo=` merge loop at `:1768-1772`. `SamplesPerPixel` is never set for single-band modes, so a value from the caller's tags or from the source TIFF's own IFD reaches `TIFFSetField`. `ImagingLibTiffEncode` then passes a row buffer sized from the actual image (`src/encode.c:291`) to `TIFFWriteScanline` (`src/libImaging/TiffDecode.c:1035`) with no check against `TIFFScanlineSize()`, and libtiff consumes a full scanline of the tag-described width from it.\n\nThe attached reproducer demonstrates the read case. A 64x4 greyscale JPEG whose EXIF says `SamplesPerPixel=3, Photometric=RGB` is converted into a valid RGB TIFF in which 128 bytes of each row are live heap, including pointers that change from run to run. The same JPEG with EXIF `ImageWidth=2**27` kills the process with SIGSEGV. For the write case, the values written are byte-wise differences of existing heap contents rather than attacker-chosen data, and nothing beyond the observed glibc abort is shown. The `tiffinfo=` route dates back to Pillow 2.3.0 (`dbf47837ce99`), and the `exif=` route to 8.4.0 (`c0f619384cbc`).\n\n## Details\n\nWhen an image is saved as TIFF through the libtiff encoder (any `compression=` other than raw, or `TiffImagePlugin.WRITE_LIBTIFF`), libtiff sizes its scanline from the `ImageWidth` / `SamplesPerPixel` / `BitsPerSample` / `PlanarConfiguration` tags it was handed, Pillow sizes the encoder row buffer from the real image, and nothing compares the two. In `TiffImagePlugin._save`'s libtiff branch only `BitsPerSample` is pinned in the attribute dict given to the encoder (`atts`, `src/PIL/TiffImagePlugin.py:1955-1982`); the other geometry tags can come from caller- or attacker-supplied data:\n\n- `ImageWidth` (256), `ImageLength` (257) and `PlanarConfiguration` (284) are set from `im.size` *before* the `tiffinfo=` / `exif=` merge loop at `:1768-1772`, so they are overwritten by it — by the EXIF of an uploaded JPEG, or by stale geometry in `im.getexif()` / `im.tag_v2` of a TIFF that Pillow auto-transposed on load (Orientation tag) or that the application `thumbnail()`ed.\n- `SamplesPerPixel` (277) is only put in the IFD for multi-band modes (`:1847-1850`), so for single-band images (`L`, `P`, `I;16`, `1`, …) a value from `exif=` / `tiffinfo=`, or from the *source TIFF's own IFD* via `supplied_tags` (`im.tag_v2`, `:1782`), is forwarded to libtiff. A palette TIFF with `SamplesPerPixel=2, BitsPerSample=(8,8), ExtraSamples=(0,)` opens as mode `P` (rawmode `PX`, extra sample dropped), and a bare `im.save(out, \"TIFF\")` — no save arguments; `compression` and `Predictor` are inherited from the source — already makes libtiff process `2*width` bytes per row from a `width`-byte buffer.\n\n`ImagingLibTiffEncode` then hands the image-sized row buffer to `TIFFWriteScanline`, and libtiff reads one scanline of the *tag-described* geometry out of a buffer holding one row of the *actual* image. With `Predictor = 2` (also forwarded from `tiffinfo=` / `im.tag_v2`) libtiff's horizontal differencing first rewrites the whole scanline **in place**, so the over-read becomes an out-of-bounds heap **write** on every row.\n\nThe tags do not have to be supplied deliberately by the application: `im.getexif()` of an uplLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19179","published":"2026-11-12T20:35:05Z","modified":"2026-11-12T21:15:13.349016789Z","summary":"Malicious code in eulaliatts (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (26264ebade1f8ffae1a24c93ad17e82008b388609927b61132f46bbca94159ff)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"eulaliatts","ecosystem":"PyPI","purl":"pkg:pypi/eulaliatts"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/eulaliatts/MAL-2026-19179.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/eulaliatts"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/eulaliatts","import_time":"2026-11-12T21:10:27.197530054Z","modified_time":"2026-11-12T20:40:35.956939Z","sha256":"26264ebade1f8ffae1a24c93ad17e82008b388609927b61132f46bbca94159ff","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19180","published":"2026-11-12T20:50:21Z","modified":"2026-11-12T21:15:14.315553603Z","summary":"Malicious code in evalometer (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (5311054d0bb8bc91f2121df374d526ca42459a664f15198eeeee4133cacf6941)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"evalometer","ecosystem":"PyPI","purl":"pkg:pypi/evalometer"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/evalometer/MAL-2026-19180.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/evalometer"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/evalometer","import_time":"2026-11-12T21:10:27.202886736Z","modified_time":"2026-11-12T20:50:21.708013Z","sha256":"5311054d0bb8bc91f2121df374d526ca42459a664f15198eeeee4133cacf6941","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19181","published":"2026-11-12T20:51:37Z","modified":"2026-11-12T21:15:13.348522423Z","summary":"Malicious code in ferrotts (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (b9cf8d8b5adcccc1d9d9b99d8148dee71751f256afb19962e88fa58cbc8ad71a)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"ferrotts","ecosystem":"PyPI","purl":"pkg:pypi/ferrotts"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/ferrotts/MAL-2026-19181.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/ferrotts"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/ferrotts","import_time":"2026-11-12T21:10:27.204088178Z","modified_time":"2026-11-12T20:51:37.574633Z","sha256":"b9cf8d8b5adcccc1d9d9b99d8148dee71751f256afb19962e88fa58cbc8ad71a","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19182","published":"2026-11-12T20:51:14Z","modified":"2026-11-12T21:15:14.317581925Z","summary":"Malicious code in flowmetry (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (3cd9c2027e6d2cd6df943297bb9304a6190ad887bc70ae8477ee81697006b889)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"flowmetry","ecosystem":"PyPI","purl":"pkg:pypi/flowmetry"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/flowmetry/MAL-2026-19182.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/flowmetry"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/flowmetry","import_time":"2026-11-12T21:10:27.204759687Z","modified_time":"2026-11-12T20:51:14.932957Z","sha256":"3cd9c2027e6d2cd6df943297bb9304a6190ad887bc70ae8477ee81697006b889","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19183","published":"2026-11-12T20:50:50Z","modified":"2026-11-12T21:15:14.318897284Z","summary":"Malicious code in garviscope (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (b9a85e3733b61731415cd2c00077af90475fd10d79833c025013a7f0b966ef15)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"garviscope","ecosystem":"PyPI","purl":"pkg:pypi/garviscope"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/garviscope/MAL-2026-19183.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/garviscope"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/garviscope","import_time":"2026-11-12T21:10:27.205429893Z","modified_time":"2026-11-12T20:50:50.41215Z","sha256":"b9a85e3733b61731415cd2c00077af90475fd10d79833c025013a7f0b966ef15","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19184","published":"2026-11-12T20:46:39Z","modified":"2026-11-12T21:15:14.311703960Z","summary":"Malicious code in garvisuite (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (aba6c4e4d80dd609e6858233c87d8491d40516add07e3bafc8b9aea5f6baa896)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"garvisuite","ecosystem":"PyPI","purl":"pkg:pypi/garvisuite"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/garvisuite/MAL-2026-19184.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/garvisuite"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/garvisuite","import_time":"2026-11-12T21:10:27.206375646Z","modified_time":"2026-11-12T20:46:39.658375Z","sha256":"aba6c4e4d80dd609e6858233c87d8491d40516add07e3bafc8b9aea5f6baa896","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19185","published":"2026-11-12T20:41:48Z","modified":"2026-11-12T21:15:14.315069601Z","summary":"Malicious code in inframetric (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (e1dfe7ee88510cfb327969ba6fe21e6dda575abbe6f2a8f7e2e4174c8a58384b)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"inframetric","ecosystem":"PyPI","purl":"pkg:pypi/inframetric"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/inframetric/MAL-2026-19185.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/inframetric"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/inframetric","import_time":"2026-11-12T21:10:27.207060793Z","modified_time":"2026-11-12T20:41:48.44655Z","sha256":"e1dfe7ee88510cfb327969ba6fe21e6dda575abbe6f2a8f7e2e4174c8a58384b","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19186","published":"2026-11-12T20:46:16Z","modified":"2026-11-12T21:15:14.311585888Z","summary":"Malicious code in lumitts (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (c1093eeb37afa2ce37481f4c7bb25156eded3eaa1e847e63cb141620b8e41550)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"lumitts","ecosystem":"PyPI","purl":"pkg:pypi/lumitts"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/lumitts/MAL-2026-19186.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/lumitts"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/lumitts","import_time":"2026-11-12T21:10:27.207723535Z","modified_time":"2026-11-12T20:46:16.923299Z","sha256":"c1093eeb37afa2ce37481f4c7bb25156eded3eaa1e847e63cb141620b8e41550","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19187","published":"2026-11-12T20:42:43Z","modified":"2026-11-12T21:15:13.591171436Z","summary":"Malicious code in melstagen (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (ac28e45b20df71fefbc8a6294c7e7a202f42b356e38dc49b0e28f335fb9a2737)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"melstagen","ecosystem":"PyPI","purl":"pkg:pypi/melstagen"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/melstagen/MAL-2026-19187.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/melstagen"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/melstagen","import_time":"2026-11-12T21:10:27.208355029Z","modified_time":"2026-11-12T20:42:43.725861Z","sha256":"ac28e45b20df71fefbc8a6294c7e7a202f42b356e38dc49b0e28f335fb9a2737","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19188","published":"2026-11-12T20:49:23Z","modified":"2026-11-12T21:15:14.311610372Z","summary":"Malicious code in phoneliasr (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (0fb66d50cba21c857c53f0336e328c0d81eb1aba12a77b17e29f3e818302c1f7)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"phoneliasr","ecosystem":"PyPI","purl":"pkg:pypi/phoneliasr"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/phoneliasr/MAL-2026-19188.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/phoneliasr"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/phoneliasr","import_time":"2026-11-12T21:10:27.209020747Z","modified_time":"2026-11-12T20:49:23.710458Z","sha256":"0fb66d50cba21c857c53f0336e328c0d81eb1aba12a77b17e29f3e818302c1f7","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19189","published":"2026-11-12T20:45:51Z","modified":"2026-11-12T21:15:14.311669412Z","summary":"Malicious code in spectrova (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (e8a78fd42fc449cadaae37c314b15fc82adf945a869f636718488b7e61baf7a9)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"spectrova","ecosystem":"PyPI","purl":"pkg:pypi/spectrova"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/spectrova/MAL-2026-19189.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/spectrova"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/spectrova","import_time":"2026-11-12T21:10:27.209671026Z","modified_time":"2026-11-12T20:45:51.472159Z","sha256":"e8a78fd42fc449cadaae37c314b15fc82adf945a869f636718488b7e61baf7a9","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19190","published":"2026-11-12T20:43:24Z","modified":"2026-11-12T21:15:14.918542422Z","summary":"Malicious code in stackvane (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (45bfb9eab4765a149f6e3ac7c08c09236115073f1b2df8a9919a6f91ffd86600)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"stackvane","ecosystem":"PyPI","purl":"pkg:pypi/stackvane"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/stackvane/MAL-2026-19190.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/stackvane"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/stackvane","import_time":"2026-11-12T21:10:27.210305876Z","modified_time":"2026-11-12T20:43:24.114632Z","sha256":"45bfb9eab4765a149f6e3ac7c08c09236115073f1b2df8a9919a6f91ffd86600","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19191","published":"2026-11-12T20:45:25Z","modified":"2026-11-12T21:15:14.920599992Z","summary":"Malicious code in voxgramasr (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (ada38683f334fda70b705c68576f12fe0bce098e47837b983e8e92dc4e51e12c)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"voxgramasr","ecosystem":"PyPI","purl":"pkg:pypi/voxgramasr"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/voxgramasr/MAL-2026-19191.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/voxgramasr"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/voxgramasr","import_time":"2026-11-12T21:10:27.210898116Z","modified_time":"2026-11-12T20:45:25.204875Z","sha256":"ada38683f334fda70b705c68576f12fe0bce098e47837b983e8e92dc4e51e12c","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19192","published":"2026-11-12T20:44:38Z","modified":"2026-11-12T21:15:14.921763654Z","summary":"Malicious code in voxrelitts (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (519830c724d27578cd9be64f1063a461a1f12f3cf7eeca1a0bf3b01785aa7624)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"voxrelitts","ecosystem":"PyPI","purl":"pkg:pypi/voxrelitts"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/voxrelitts/MAL-2026-19192.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/voxrelitts"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/voxrelitts","import_time":"2026-11-12T21:10:27.211528017Z","modified_time":"2026-11-12T20:44:38.709734Z","sha256":"519830c724d27578cd9be64f1063a461a1f12f3cf7eeca1a0bf3b01785aa7624","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19193","published":"2026-11-12T20:49:48Z","modified":"2026-11-12T21:15:14.915654211Z","summary":"Malicious code in wavforge (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (e017f6da32e0eec5f8bc75486e5bfb1b016bffea08ce26fb715e816de64ca7ea)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"wavforge","ecosystem":"PyPI","purl":"pkg:pypi/wavforge"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/wavforge/MAL-2026-19193.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/wavforge"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/wavforge","import_time":"2026-11-12T21:10:27.212099388Z","modified_time":"2026-11-12T20:49:49.010837Z","sha256":"e017f6da32e0eec5f8bc75486e5bfb1b016bffea08ce26fb715e816de64ca7ea","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19199","published":"2026-11-12T21:04:04Z","modified":"2026-11-12T21:45:03.424388881Z","summary":"Malicious code in acustoviasr (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (1b7333093822a9bcb12475b4f9a7e57dacecb962f9157f2b67f53ab7797f085d)\nThis campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voice-synthesis-profiles\n\n\nReasons (based on the campaign):\n\n\n - other\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"acustoviasr","ecosystem":"PyPI","purl":"pkg:pypi/acustoviasr"},"versions":["0.1.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/acustoviasr/MAL-2026-19199.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/acustoviasr"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-10-voice-synthesis-profiles/acustoviasr","import_time":"2026-11-12T21:37:07.392105357Z","modified_time":"2026-11-12T21:04:04.779097Z","sha256":"1b7333093822a9bcb12475b4f9a7e57dacecb962f9157f2b67f53ab7797f085d","source":"kam193","versions":["0.1.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"schema_version":"1.9.2","id":"MAL-2026-19202","published":"2026-11-12T22:25:26Z","modified":"2026-11-12T23:15:03.232776444Z","summary":"Malicious code in dashloom (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (ba0285d49d46cd93cdcad1582bb1c013beb3791dc901a0a3c96f3801dba9d909)\nThis package is prepared to be used as a malicious loader. It pins pydash dependency in a vulnerable version allowing reaching out of the object scope when calling `pydash.invoke(...)`. The code to reach it is intended to be delivered from the now-benign GitHub file, which is then splited and passed to the vulnerable function. The same Github user account is also involved in publishing a repository that executes embedded encrypted code when called with specific arguments. The package was originally flagged by PyPI Security.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-11-dashloom\n\n\nReasons (based on the campaign):\n\n\n - action-hidden-in-lib-usage\n\n\n - Downloads and executes a remote malicious script.\n","affected":[{"package":{"name":"dashloom","ecosystem":"PyPI","purl":"pkg:pypi/dashloom"},"versions":["1.0.0","1.1.0","1.1.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/dashloom/MAL-2026-19202.json"}}],"references":[{"type":"WEB","url":"https://github.com/secure-file-crypter/secure-file-crypter/blob/d139e9955a08528126897f8ed7949f6c6b6891b4/src/pre-post-encrypt.js#L1"},{"type":"WEB","url":"https://github.com/dgilland/pydash/blob/b6bd031de47134b8e3c3977fbe65bf13cc51a205/CHANGELOG.rst?plain=1#L291"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/dashloom"}],"database_specific":{"iocs":{"urls":["https://github.com/dash-loom/dashloom-helper/blob/main/src/dashloom_helper/helper.txt"]},"malicious-packages-origins":[{"id":"pypi/2026-11-dashloom/dashloom","import_time":"2026-11-12T23:09:52.557746197Z","modified_time":"2026-11-12T22:25:26.740092Z","sha256":"ba0285d49d46cd93cdcad1582bb1c013beb3791dc901a0a3c96f3801dba9d909","source":"kam193","versions":["1.0.0","1.1.0","1.1.1"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}
|
||||
@@ -1 +1 @@
|
||||
{"schema_version":"1.9.2","id":"PYSEC-2025-102","published":"2025-07-22T17:15:33.543Z","modified":"2026-11-05T18:30:02.541950501Z","aliases":["CVE-2025-51481","GHSA-h7x8-jv97-fvvm","PYSEC-2026-1286"],"details":"Local File Inclusion in dagster._grpc.impl.get_notebook_data in Dagster 1.10.14 allows attackers with access to the gRPC server to read arbitrary files by supplying path traversal sequences in the notebook_path field of ExternalNotebookData requests, bypassing the intended extension-based check.","affected":[{"package":{"name":"dagster-ge","ecosystem":"PyPI","purl":"pkg:pypi/dagster-ge"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.10.14"}]}],"versions":["0.10.0","0.10.0rc0","0.10.1","0.10.1rc0","0.10.2","0.10.2rc0","0.10.3","0.10.3rc0","0.10.4","0.10.4rc0","0.10.5","0.10.5rc0","0.10.6","0.10.6rc0","0.10.7","0.10.7rc0","0.10.8","0.10.8rc0","0.10.9","0.11.0","0.11.0rc0","0.11.1","0.11.10","0.11.10rc0","0.11.10rc1","0.11.10rc2","0.11.11","0.11.11rc1","0.11.11rc5","0.11.11rc7","0.11.12","0.11.12rc0","0.11.12rc2","0.11.12rc3","0.11.13","0.11.13rc2","0.11.13rc3","0.11.13rc5","0.11.14","0.11.14rc0","0.11.14rc1","0.11.14rc2","0.11.14rc3","0.11.14rc4","0.11.14rc5","0.11.14rc7","0.11.14rc8","0.11.15","0.11.15rc0","0.11.15rc1","0.11.16","0.11.16rc10","0.11.16rc18","0.11.1rc0","0.11.2","0.11.2rc0","0.11.3","0.11.3rc0","0.11.4","0.11.4rc0","0.11.5","0.11.5rc0","0.11.5rc1","0.11.6","0.11.6rc11","0.11.6rc13","0.11.6rc14","0.11.6rc15","0.11.6rc16","0.11.6rc17","0.11.6rc18","0.11.6rc19","0.11.6rc20","0.11.6rc21","0.11.6rc22","0.11.6rc23","0.11.6rc24","0.11.6rc25","0.11.6rc26","0.11.6rc27","0.11.6rc28","0.11.6rc29","0.11.6rc31","0.11.6rc32","0.11.6rc5","0.11.6rc7","0.11.6rc8","0.11.6rc9","0.11.7","0.11.7rc1","0.11.7rc10","0.11.7rc13","0.11.7rc14","0.11.7rc2","0.11.7rc3","0.11.7rc4","0.11.7rc6","0.11.7rc7","0.11.7rc8","0.11.7rc9","0.11.8","0.11.8rc4","0.11.8rc5","0.11.9","0.11.9rc10","0.11.9rc11","0.11.9rc12","0.11.9rc6","0.11.9rc7","0.11.9rc8","0.12.0","0.12.0rc0","0.12.1","0.12.10","0.12.10rc0","0.12.10rc1","0.12.11","0.12.11rc0","0.12.12","0.12.12rc0","0.12.13","0.12.13rc0","0.12.14","0.12.14rc0","0.12.14rc1","0.12.14rc2","0.12.15","0.12.15rc2","0.12.1rc0","0.12.2","0.12.2rc0","0.12.3","0.12.3rc1","0.12.4","0.12.4rc0","0.12.4rc1","0.12.5","0.12.5rc0","0.12.6","0.12.6rc0","0.12.7","0.12.7rc0","0.12.8","0.12.8rc0","0.12.9","0.12.9rc0","0.12.9rc1","0.12.9rc2","0.13.0","0.13.0rc0","0.13.1","0.13.10","0.13.10rc3","0.13.11","0.13.11rc0","0.13.12","0.13.12rc2","0.13.13","0.13.13rc0","0.13.14","0.13.14rc0","0.13.15","0.13.15rc0","0.13.16","0.13.16rc0","0.13.17","0.13.17rc0","0.13.18","0.13.18rc0","0.13.19","0.13.19rc2","0.13.1rc0","0.13.2","0.13.2rc0","0.13.2rc2","0.13.3","0.13.3rc0","0.13.4","0.13.4rc0","0.13.5","0.13.5rc0","0.13.6","0.13.6rc0","0.13.7","0.13.7rc0","0.13.8","0.13.8rc0","0.13.9","0.13.9rc0","0.14.0","0.14.0rc0","0.14.1","0.14.10","0.14.11","0.14.12","0.14.13","0.14.14","0.14.15","0.14.16","0.14.16rc2","0.14.16rc3","0.14.16rc4","0.14.17","0.14.17rc10","0.14.17rc3","0.14.17rc4","0.14.17rc5","0.14.17rc6","0.14.17rc7","0.14.17rc8","0.14.18","0.14.18rc2","0.14.18rc3","0.14.18rc4","0.14.18rc5","0.14.18rc6","0.14.19","0.14.1rc0","0.14.2","0.14.20","0.14.20rc0","0.14.21rc0","0.14.2rc0","0.14.3","0.14.3rc0","0.14.4","0.14.4rc0","0.14.5","0.14.5rc0","0.14.6","0.14.6rc0","0.14.7","0.14.7rc0","0.14.8","0.14.8rc1","0.14.9","0.14.9rc0","0.15.0","0.15.1","0.15.10","0.15.2","0.15.3","0.15.4","0.15.5","0.15.6","0.15.7","0.15.8","0.15.9","0.16.0","0.16.0rc2","0.16.1","0.16.10","0.16.11","0.16.12","0.16.13","0.16.14","0.16.15","0.16.16","0.16.17","0.16.2","0.16.3","0.16.4","0.16.6","0.16.7","0.16.8","0.16.9","0.17.1","0.17.10","0.17.11","0.17.12","0.17.13","0.17.14","0.17.15","0.17.16","0.17.17","0.17.17rc0","0.17.18","0.17.19","0.17.2","0.17.20","0.17.21","0.17.3","0.17.4","0.17.5","0.17.6","0.17.7","0.17.8","0.17.9","0.18.0","0.18.1","0.18.2","0.18.3","0.18.4","0.18.5","0.18.6","0.18.7","0.19.0","0.19.1","0.19.10","0.19.11","0.19.12","0.19.13","0.19.14","0.19.14rc1","0.19.14rc2","0.19.2","0.19.3","0.19.4","0.19.5","0.19.6","0.19.7","0.19.8","0.19.9","0.19.9rc0","0.20.0","0.20.1","0.20.10","0.20.11","0.20.12","0.20.13","0.20.13rc0","0.20.13rc1","0.20.14","0.20.15","0.20.16","0.20.17","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8","0.20.9","0.21.0","0.21.1","0.21.10","0.21.11","0.21.12","0.21.13","0.21.14","0.21.14rc0","0.21.2","0.21.3","0.21.4","0.21.5","0.21.6","0.21.7","0.21.8","0.21.9","0.22.0","0.22.1","0.22.10","0.22.11","0.22.12","0.22.13","0.22.14","0.22.2","0.22.3","0.22.4","0.22.5","0.22.6","0.22.7","0.22.8","0.22.9","0.23.0","0.23.1","0.23.10","0.23.11","0.23.12","0.23.13","0.23.14","0.23.15","0.23.16","0.23.2","0.23.2rc1","0.23.2rc2","0.23.2rc3","0.23.2rc4","0.23.3","0.23.4","0.23.5","0.23.6","0.23.7","0.23.8","0.23.9","0.23.9rc0","0.24.0","0.24.1","0.24.10","0.24.11","0.24.12","0.24.13","0.24.2","0.24.3","0.24.4","0.24.5","0.24.6","0.24.7","0.24.8","0.24.9","0.2Line truncated
|
||||
{"schema_version":"1.9.2","id":"PYSEC-2025-102","published":"2025-07-22T17:15:33.543Z","modified":"2026-11-12T20:45:02.317537019Z","aliases":["CVE-2025-51481","GHSA-h7x8-jv97-fvvm","PYSEC-2026-1286"],"details":"Local File Inclusion in dagster._grpc.impl.get_notebook_data in Dagster 1.10.14 allows attackers with access to the gRPC server to read arbitrary files by supplying path traversal sequences in the notebook_path field of ExternalNotebookData requests, bypassing the intended extension-based check.","affected":[{"package":{"name":"dagster-ge","ecosystem":"PyPI","purl":"pkg:pypi/dagster-ge"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.10.14"}]}],"versions":["0.10.0","0.10.0rc0","0.10.1","0.10.1rc0","0.10.2","0.10.2rc0","0.10.3","0.10.3rc0","0.10.4","0.10.4rc0","0.10.5","0.10.5rc0","0.10.6","0.10.6rc0","0.10.7","0.10.7rc0","0.10.8","0.10.8rc0","0.10.9","0.11.0","0.11.0rc0","0.11.1","0.11.10","0.11.10rc0","0.11.10rc1","0.11.10rc2","0.11.11","0.11.11rc1","0.11.11rc5","0.11.11rc7","0.11.12","0.11.12rc0","0.11.12rc2","0.11.12rc3","0.11.13","0.11.13rc2","0.11.13rc3","0.11.13rc5","0.11.14","0.11.14rc0","0.11.14rc1","0.11.14rc2","0.11.14rc3","0.11.14rc4","0.11.14rc5","0.11.14rc7","0.11.14rc8","0.11.15","0.11.15rc0","0.11.15rc1","0.11.16","0.11.16rc10","0.11.16rc18","0.11.1rc0","0.11.2","0.11.2rc0","0.11.3","0.11.3rc0","0.11.4","0.11.4rc0","0.11.5","0.11.5rc0","0.11.5rc1","0.11.6","0.11.6rc11","0.11.6rc13","0.11.6rc14","0.11.6rc15","0.11.6rc16","0.11.6rc17","0.11.6rc18","0.11.6rc19","0.11.6rc20","0.11.6rc21","0.11.6rc22","0.11.6rc23","0.11.6rc24","0.11.6rc25","0.11.6rc26","0.11.6rc27","0.11.6rc28","0.11.6rc29","0.11.6rc31","0.11.6rc32","0.11.6rc5","0.11.6rc7","0.11.6rc8","0.11.6rc9","0.11.7","0.11.7rc1","0.11.7rc10","0.11.7rc13","0.11.7rc14","0.11.7rc2","0.11.7rc3","0.11.7rc4","0.11.7rc6","0.11.7rc7","0.11.7rc8","0.11.7rc9","0.11.8","0.11.8rc4","0.11.8rc5","0.11.9","0.11.9rc10","0.11.9rc11","0.11.9rc12","0.11.9rc6","0.11.9rc7","0.11.9rc8","0.12.0","0.12.0rc0","0.12.1","0.12.10","0.12.10rc0","0.12.10rc1","0.12.11","0.12.11rc0","0.12.12","0.12.12rc0","0.12.13","0.12.13rc0","0.12.14","0.12.14rc0","0.12.14rc1","0.12.14rc2","0.12.15","0.12.15rc2","0.12.1rc0","0.12.2","0.12.2rc0","0.12.3","0.12.3rc1","0.12.4","0.12.4rc0","0.12.4rc1","0.12.5","0.12.5rc0","0.12.6","0.12.6rc0","0.12.7","0.12.7rc0","0.12.8","0.12.8rc0","0.12.9","0.12.9rc0","0.12.9rc1","0.12.9rc2","0.13.0","0.13.0rc0","0.13.1","0.13.10","0.13.10rc3","0.13.11","0.13.11rc0","0.13.12","0.13.12rc2","0.13.13","0.13.13rc0","0.13.14","0.13.14rc0","0.13.15","0.13.15rc0","0.13.16","0.13.16rc0","0.13.17","0.13.17rc0","0.13.18","0.13.18rc0","0.13.19","0.13.19rc2","0.13.1rc0","0.13.2","0.13.2rc0","0.13.2rc2","0.13.3","0.13.3rc0","0.13.4","0.13.4rc0","0.13.5","0.13.5rc0","0.13.6","0.13.6rc0","0.13.7","0.13.7rc0","0.13.8","0.13.8rc0","0.13.9","0.13.9rc0","0.14.0","0.14.0rc0","0.14.1","0.14.10","0.14.11","0.14.12","0.14.13","0.14.14","0.14.15","0.14.16","0.14.16rc2","0.14.16rc3","0.14.16rc4","0.14.17","0.14.17rc10","0.14.17rc3","0.14.17rc4","0.14.17rc5","0.14.17rc6","0.14.17rc7","0.14.17rc8","0.14.18","0.14.18rc2","0.14.18rc3","0.14.18rc4","0.14.18rc5","0.14.18rc6","0.14.19","0.14.1rc0","0.14.2","0.14.20","0.14.20rc0","0.14.21rc0","0.14.2rc0","0.14.3","0.14.3rc0","0.14.4","0.14.4rc0","0.14.5","0.14.5rc0","0.14.6","0.14.6rc0","0.14.7","0.14.7rc0","0.14.8","0.14.8rc1","0.14.9","0.14.9rc0","0.15.0","0.15.1","0.15.10","0.15.2","0.15.3","0.15.4","0.15.5","0.15.6","0.15.7","0.15.8","0.15.9","0.16.0","0.16.0rc2","0.16.1","0.16.10","0.16.11","0.16.12","0.16.13","0.16.14","0.16.15","0.16.16","0.16.17","0.16.2","0.16.3","0.16.4","0.16.6","0.16.7","0.16.8","0.16.9","0.17.1","0.17.10","0.17.11","0.17.12","0.17.13","0.17.14","0.17.15","0.17.16","0.17.17","0.17.17rc0","0.17.18","0.17.19","0.17.2","0.17.20","0.17.21","0.17.3","0.17.4","0.17.5","0.17.6","0.17.7","0.17.8","0.17.9","0.18.0","0.18.1","0.18.2","0.18.3","0.18.4","0.18.5","0.18.6","0.18.7","0.19.0","0.19.1","0.19.10","0.19.11","0.19.12","0.19.13","0.19.14","0.19.14rc1","0.19.14rc2","0.19.2","0.19.3","0.19.4","0.19.5","0.19.6","0.19.7","0.19.8","0.19.9","0.19.9rc0","0.20.0","0.20.1","0.20.10","0.20.11","0.20.12","0.20.13","0.20.13rc0","0.20.13rc1","0.20.14","0.20.15","0.20.16","0.20.17","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8","0.20.9","0.21.0","0.21.1","0.21.10","0.21.11","0.21.12","0.21.13","0.21.14","0.21.14rc0","0.21.2","0.21.3","0.21.4","0.21.5","0.21.6","0.21.7","0.21.8","0.21.9","0.22.0","0.22.1","0.22.10","0.22.11","0.22.12","0.22.13","0.22.14","0.22.2","0.22.3","0.22.4","0.22.5","0.22.6","0.22.7","0.22.8","0.22.9","0.23.0","0.23.1","0.23.10","0.23.11","0.23.12","0.23.13","0.23.14","0.23.15","0.23.16","0.23.2","0.23.2rc1","0.23.2rc2","0.23.2rc3","0.23.2rc4","0.23.3","0.23.4","0.23.5","0.23.6","0.23.7","0.23.8","0.23.9","0.23.9rc0","0.24.0","0.24.1","0.24.10","0.24.11","0.24.12","0.24.13","0.24.2","0.24.3","0.24.4","0.24.5","0.24.6","0.24.7","0.24.8","0.24.9","0.2Line truncated
|
||||
Reference in new issue
Block a user