hitoshura25/cvefixes huggingface dataset:
CVE-2023-34098 (Other, published 2023-06-27T17:15Z)
Description: value: Shopware is an open source e-commerce software. Due to an incorrect configuration in the `.htaccess` file, the configuration file of the Javascript could be read in production environments (`themes/package-lock.json`). With this information, the specific Shopware version in a deployment might be determined by an attacker, which could be used for further attacks. Users are advised to update to version 5.7.18. There are no known workarounds for this vulnerability.

Severity: nan (CVSS v3 base score: 5.3)
Weakness: CWE-200 \u2014 Exposure of Sensitive Information to an Unauthorized Actor
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
Repository: https://github.com/shopware5/shopware
Files changed:
.htaccess.dist
Commit message: SW-27070 - improve htaccess


Vulnerable code:
    RedirectMatch 404 /themes/(.*)(.*\.lock|package\.json|\.gitignore|Gruntfile\.js|all\.less|node_modules\/.*)$

Fixed code:
    RedirectMatch 404 /themes/(.*)(.(lock|package)\.json|\.gitignore|Gruntfile\.js|all\.less|node_modules\/.*)$
CVE-2017-16833 (Ruby, published 2017-11-15T09:29Z)
Description: value: Stored cross-site scripting (XSS) vulnerability in Gemirro before 0.16.0 allows attackers to inject arbitrary web script via a crafted javascript: URL in the "homepage" value of a ".gemspec" file.
Severity: MEDIUM (CVSS v3 base score: 6.1)
Weakness: CWE-79 \u2014 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
Repository: https://github.com/PierreRambaud/gemirro
Files changed:
Gemfile.lock
lib/gemirro/server.rb
views/gem.erb
Commit message: Security Fix again, thanks to Yasin Soliman


Vulnerable code:
    gemirro (0.14.0)
                  <a href="<%= escape(spec.homepage) %>"><%= escape(author) %></a>

Fixed code:
    gemirro (0.15.0)
require 'uri'

      ##
      # Homepage link
      #
      # @param [Gem] spec
      # @return [String]
      #
      def homepage(spec)
        URI.parse(URI.escape(spec.homepage))
      end
                  <a href="<%= homepage(spec) %>"><%= escape(author) %></a>
CVE-2021-43814 (Other, published 2021-12-13T20:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. In versions up to and including 0.3.1 there is a heap-based out of bounds write in parse_die() when reversing an AMD64 ELF binary with DWARF debug info. When a malicious AMD64 ELF binary is opened by a victim user, Rizin may crash or execute unintended actions. No workaround are known and users are advised to upgrade.
Severity: MEDIUM (CVSS v3 base score: 7.8)
Weakness: CWE-787 \u2014 Out-of-bounds Write
The product writes data past the end, or before the beginning, of the intended buffer.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/dwarf.c
test/db/formats/elf/crash
Commit message: Fix oob write for dwarf with abbrev with count 0 (Fix #2083) (#2086)



Vulnerable code:
	die->attr_values = calloc(sizeof(RzBinDwarfAttrValue), attr_count);
	if (!die->attr_values) {
		return -1;
	for (i = 0; i < abbrev->count - 1; i++) {
		memset(&die->attr_values[i], 0, sizeof(die->attr_values[i]));
		buf = parse_attr_value(buf, buf_end - buf, &abbrev->defs[i],
			&die->attr_values[i], hdr, debug_str, debug_str_len, big_endian);
		RzBinDwarfAttrValue *attribute = &die->attr_values[i];
		if (attribute->attr_name == DW_AT_comp_dir && (attribute->attr_form == DW_FORM_strp || attribute->attr_form == DW_FORM_string) && attribute->string.content) {
			comp_dir = attribute->string.content;
		}
		if (attribute->attr_name == DW_AT_stmt_list) {
			if (attribute->kind == DW_AT_KIND_CONSTANT) {
				line_info_offset = attribute->uconstant;
			} else if (attribute->kind == DW_AT_KIND_REFERENCE) {
				line_info_offset = attribute->reference;
		die->count++;

Fixed code:
	if (attr_count) {
		die->attr_values = calloc(sizeof(RzBinDwarfAttrValue), attr_count);
		if (!die->attr_values) {
			return -1;
		}
	} else {
		die->attr_values = NULL;
	if (abbrev->count) {
		for (i = 0; i < abbrev->count - 1; i++) {
			memset(&die->attr_values[i], 0, sizeof(die->attr_values[i]));
			buf = parse_attr_value(buf, buf_end - buf, &abbrev->defs[i],
				&die->attr_values[i], hdr, debug_str, debug_str_len, big_endian);
			RzBinDwarfAttrValue *attribute = &die->attr_values[i];
			if (attribute->attr_name == DW_AT_comp_dir && (attribute->attr_form == DW_FORM_strp || attribute->attr_form == DW_FORM_string) && attribute->string.content) {
				comp_dir = attribute->string.content;
			}
			if (attribute->attr_name == DW_AT_stmt_list) {
				if (attribute->kind == DW_AT_KIND_CONSTANT) {
					line_info_offset = attribute->uconstant;
				} else if (attribute->kind == DW_AT_KIND_REFERENCE) {
					line_info_offset = attribute->reference;
				}
			die->count++;

NAME=ELF/Dwarf: abbrev empty
FILE=bins/elf/dwarf_fuzzed_abbrev_empty
CMDS=<<EOF
aaa
EOF
EXPECT=
RUN
CVE-2022-36039 (C, published 2022-09-06T19:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. Versions 0.4.0 and prior are vulnerable to out-of-bounds write when parsing DEX files. A user opening a malicious DEX file could be affected by this vulnerability, allowing an attacker to execute code on the user's machine. A patch is available on the `dev` branch of the repository.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-787 \u2014 Out-of-bounds Write
The product writes data past the end, or before the beginning, of the intended buffer.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/format/dex/dex.c
Commit message: fix #2969 - oob write (1 byte) in dex.c


Vulnerable code:
	demangled[strlen(demangled) - 1] = 0;

Fixed code:
	if (UT64_ADD_OVFCHK(size, 1)) {
		return NULL;
	}

	if (RZ_STR_ISNOTEMPTY(demangled)) {
		demangled[strlen(demangled) - 1] = 0;
	}
CVE-2022-36042 (C, published 2022-09-06T19:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. Versions 0.4.0 and prior are vulnerable to an out-of-bounds write when getting data from dyld cache files. A user opening a malicious dyld cache file could be affected by this vulnerability, allowing an attacker to execute code on the user's machine. Commit number 556ca2f9eef01ec0f4a76d1fbacfcf3a87a44810 contains a patch.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-787 \u2014 Out-of-bounds Write
The product writes data past the end, or before the beginning, of the intended buffer.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/format/mach0/dyldcache.c
Commit message: Fix oob write in dyldcache

When the individual n_slide_infos were too high, the sum would overflow
and too few entries would be allocated.


Vulnerable code:
		ut32 total_slide_infos = 0;
			total_slide_infos += n_slide_infos[i];

Fixed code:
		size_t total_slide_infos = 0;
			ut32 total = total_slide_infos + n_slide_infos[i];
			if (total < total_slide_infos) {
				// overflow
				goto beach;
			}
			total_slide_infos = total;
CVE-2022-36044 (C, published 2022-09-06T20:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. Versions 0.4.0 and prior are vulnerable to an out-of-bounds write when getting data from Luac files. A user opening a malicious Luac file could be affected by this vulnerability, allowing an attacker to execute code on the user's machine. Commits 07b43bc8aa1ffebd9b68d60624c9610cf7e460c7 and 05bbd147caccc60162d6fba9baaaf24befa281cd contain fixes for the issue.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-787 \u2014 Out-of-bounds Write
The product writes data past the end, or before the beginning, of the intended buffer.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/bobj.c
librz/bin/format/luac/luac_bin.c
Commit message: fix oob read on luac


Vulnerable code:
		if (sym->name[0] != '_') {
	size_t real_upvalue_cnt = rz_list_length(proto->upvalue_entries);

Fixed code:
		if (!sym->name || sym->name[0] != '_') {
	size_t real_upvalue_cnt = RZ_MAX(rz_list_length(proto->upvalue_entries), rz_list_length(proto->dbg_upvalue_entries));
		if (!symbol_name) {
			continue;
		}
CVE-2022-36044 (C, published 2022-09-06T20:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. Versions 0.4.0 and prior are vulnerable to an out-of-bounds write when getting data from Luac files. A user opening a malicious Luac file could be affected by this vulnerability, allowing an attacker to execute code on the user's machine. Commits 07b43bc8aa1ffebd9b68d60624c9610cf7e460c7 and 05bbd147caccc60162d6fba9baaaf24befa281cd contain fixes for the issue.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-787 \u2014 Out-of-bounds Write
The product writes data past the end, or before the beginning, of the intended buffer.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/format/luac/luac_bin.c
librz/bin/format/luac/luac_common.h
librz/bin/p/bin_luac.c
Commit message: Fix oob read on _luac_build_info and luac memleaks


Vulnerable code:
static void try_free_empty_list(RzList *list) {
	if (list != NULL) {
		rz_list_free(list);
	}
}

		try_free_empty_list(ret->entry_list);
		try_free_empty_list(ret->symbol_list);
		try_free_empty_list(ret->section_list);
		try_free_empty_list(ret->string_list);
	int i = 0; // iter

	char **upvalue_names;
	int real_upvalue_cnt;
	LuaDbgUpvalueEntry *debug_upv_entry;
	real_upvalue_cnt = rz_list_length(proto->upvalue_entries);
	upvalue_names = RZ_NEWS0(char *, real_upvalue_cnt);
	if (!upvalue_names) {
		return;
	}
	rz_list_foreach (proto->dbg_upvalue_entries, iter, debug_upv_entry) {
		upvalue_names[i] = (char *)debug_upv_entry->upvalue_name;
		luac_add_string(
			info->string_list,
			upvalue_names[i],
			debug_upv_entry->offset,
			debug_upv_entry->name_len);
	RZ_FREE(proto_name);
	return bin_info_obj->symbol_list;
	return bin_info_obj->entry_list;
	return bin_info_obj->string_list;

Fixed code:
void luac_build_info_free(LuacBinInfo *bin_info) {
	if (!bin_info) {
		return;
	}
	rz_list_free(bin_info->entry_list);
	rz_list_free(bin_info->symbol_list);
	rz_list_free(bin_info->section_list);
	rz_list_free(bin_info->string_list);
	free(bin_info);
}

		rz_list_free(ret->entry_list);
		rz_list_free(ret->symbol_list);
		rz_list_free(ret->section_list);
		rz_list_free(ret->string_list);
	char **upvalue_names = NULL;
	int i = 0; // iter
	size_t real_upvalue_cnt = rz_list_length(proto->upvalue_entries);
	if (real_upvalue_cnt > 0) {
		LuaDbgUpvalueEntry *debug_upv_entry;
		upvalue_names = RZ_NEWS0(char *, real_upvalue_cnt);
		if (!upvalue_names) {
			free(proto_name);
			return;
		}

		i = 0;
		rz_list_foreach (proto->dbg_upvalue_entries, iter, debug_upv_entry) {
			upvalue_names[i] = (char *)debug_upv_entry->upvalue_name;
			luac_add_string(
				info->string_list,
				upvalue_names[i],
				debug_upv_entry->offset,
				debug_upv_entry->name_len);
			i++;
		}
	free(upvalue_names);
	free(proto_name);
void luac_build_info_free(LuacBinInfo *bin_info);
	return rz_list_clone(bin_info_obj->symbol_list);
	return rz_list_clone(bin_info_obj->entry_list);
	return rz_list_clone(bin_info_obj->string_list);
}

static void destroy(RzBinFile *bf) {
	LuacBinInfo *bin_info_obj = GET_INTERNAL_BIN_INFO_OBJ(bf);
	luac_build_info_free(bin_info_obj);
	.destroy = &destroy,
CVE-2023-27590 (C, published 2023-03-14T21:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. In version 0.5.1 and prior, converting a GDB registers profile file into a Rizin register profile can result in a stack-based buffer overflow when the `name`, `type`, or `groups` fields have longer values than expected. Users opening untrusted GDB registers files (e.g. with the `drpg` or `arpg` commands) are affected by this flaw. Commit d6196703d89c84467b600ba2692534579dc25ed4 contains a patch for this issue. As a workaround, review the GDB register profiles before loading them with `drpg`/`arpg` commands.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-120 \u2014 Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
The product copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/debug/p/debug_gdb.c
librz/debug/p/debug_io.c
librz/include/rz_types_base.h
librz/reg/profile.c
Commit message: Fix conversion from GDB register profile to rizin profile


Vulnerable code:
	char name[1024], region1[100], region2[100], perms[5];
		ret = sscanf(ptr, "%s %s %" PFMT64x " %*s %*s %[^\n]", &region1[2],
			perms, &offset, name);
	char perm[32];
	char name[512];
			sscanf(str, "0x%" PFMT64x " - 0x%" PFMT64x " %s %s",
	char name[16], groups[128], type[16];
		ret = sscanf(ptr, " %s %d %d %d %d %s %s", name, &number, &rel,
			&offset, &size, type, groups);

Fixed code:
#define PROC_NAME_SZ   1024
#define PROC_REGION_SZ 100
// PROC_REGION_SZ - 2 (used for `0x`). Due to how RZ_STR_DEF works this can't be
// computed.
#define PROC_REGION_LEFT_SZ 98
#define PROC_PERM_SZ        5

	char name[PROC_NAME_SZ + 1], region1[PROC_REGION_SZ + 1], region2[PROC_REGION_SZ + 1], perms[PROC_PERM_SZ + 1];
		ret = sscanf(ptr, "%" RZ_STR_DEF(PROC_REGION_LEFT_SZ) "s %" RZ_STR_DEF(PROC_PERM_SZ) "s %" PFMT64x " %*s %*s %" RZ_STR_DEF(PROC_NAME_SZ) "[^\n]",
			&region1[2], perms, &offset, name);
#define IO_MAPS_PERM_SZ 32
#define IO_MAPS_NAME_SZ 512

	char perm[IO_MAPS_PERM_SZ + 1];
	char name[IO_MAPS_NAME_SZ + 1];
			sscanf(str, "0x%" PFMT64x " - 0x%" PFMT64x " %" RZ_STR_DEF(IO_MAPS_PERM_SZ) "s %" RZ_STR_DEF(IO_MAPS_NAME_SZ) "s",
#define RZ_STR_DEF(s) RZ_STR(s)
#define RZ_STR(s)     #s

#define GDB_NAME_SZ   16
#define GDB_TYPE_SZ   16
#define GDB_GROUPS_SZ 128

	char name[GDB_NAME_SZ + 1], groups[GDB_GROUPS_SZ + 1], type[GDB_TYPE_SZ + 1];
		ret = sscanf(ptr, " %" RZ_STR_DEF(GDB_NAME_SZ) "s %d %d %d %d %" RZ_STR_DEF(GDB_TYPE_SZ) "s %" RZ_STR_DEF(GDB_GROUPS_SZ) "s",
			name, &number, &rel, &offset, &size, type, groups);
CVE-2023-27590 (C, published 2023-03-14T21:15Z)
Description: value: Rizin is a UNIX-like reverse engineering framework and command-line toolset. In version 0.5.1 and prior, converting a GDB registers profile file into a Rizin register profile can result in a stack-based buffer overflow when the `name`, `type`, or `groups` fields have longer values than expected. Users opening untrusted GDB registers files (e.g. with the `drpg` or `arpg` commands) are affected by this flaw. Commit d6196703d89c84467b600ba2692534579dc25ed4 contains a patch for this issue. As a workaround, review the GDB register profiles before loading them with `drpg`/`arpg` commands.
Severity: nan (CVSS v3 base score: 7.8)
Weakness: CWE-121 \u2014 Stack-based Buffer Overflow
A stack-based buffer overflow condition is a condition where the buffer being overwritten is allocated on the stack (i.e., is a local variable or, rarely, a parameter to a function).
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/debug/p/debug_gdb.c
librz/debug/p/debug_io.c
librz/include/rz_types_base.h
librz/reg/profile.c
Commit message: Fix conversion from GDB register profile to rizin profile


Vulnerable code:
	char name[1024], region1[100], region2[100], perms[5];
		ret = sscanf(ptr, "%s %s %" PFMT64x " %*s %*s %[^\n]", &region1[2],
			perms, &offset, name);
	char perm[32];
	char name[512];
			sscanf(str, "0x%" PFMT64x " - 0x%" PFMT64x " %s %s",
	char name[16], groups[128], type[16];
		ret = sscanf(ptr, " %s %d %d %d %d %s %s", name, &number, &rel,
			&offset, &size, type, groups);

Fixed code:
#define PROC_NAME_SZ   1024
#define PROC_REGION_SZ 100
// PROC_REGION_SZ - 2 (used for `0x`). Due to how RZ_STR_DEF works this can't be
// computed.
#define PROC_REGION_LEFT_SZ 98
#define PROC_PERM_SZ        5

	char name[PROC_NAME_SZ + 1], region1[PROC_REGION_SZ + 1], region2[PROC_REGION_SZ + 1], perms[PROC_PERM_SZ + 1];
		ret = sscanf(ptr, "%" RZ_STR_DEF(PROC_REGION_LEFT_SZ) "s %" RZ_STR_DEF(PROC_PERM_SZ) "s %" PFMT64x " %*s %*s %" RZ_STR_DEF(PROC_NAME_SZ) "[^\n]",
			&region1[2], perms, &offset, name);
#define IO_MAPS_PERM_SZ 32
#define IO_MAPS_NAME_SZ 512

	char perm[IO_MAPS_PERM_SZ + 1];
	char name[IO_MAPS_NAME_SZ + 1];
			sscanf(str, "0x%" PFMT64x " - 0x%" PFMT64x " %" RZ_STR_DEF(IO_MAPS_PERM_SZ) "s %" RZ_STR_DEF(IO_MAPS_NAME_SZ) "s",
#define RZ_STR_DEF(s) RZ_STR(s)
#define RZ_STR(s)     #s

#define GDB_NAME_SZ   16
#define GDB_TYPE_SZ   16
#define GDB_GROUPS_SZ 128

	char name[GDB_NAME_SZ + 1], groups[GDB_GROUPS_SZ + 1], type[GDB_TYPE_SZ + 1];
		ret = sscanf(ptr, " %" RZ_STR_DEF(GDB_NAME_SZ) "s %d %d %d %d %" RZ_STR_DEF(GDB_TYPE_SZ) "s %" RZ_STR_DEF(GDB_GROUPS_SZ) "s",
			name, &number, &rel, &offset, &size, type, groups);
CVE-2023-30226 (C, published 2023-07-12T02:15Z)
Description: value: An issue was discovered in function get_gnu_verneed in rizinorg Rizin prior to 0.5.0 verneed_entry allows attackers to cause a denial of service via crafted elf file.
Severity: nan (CVSS v3 base score: 5.5)
Weakness: CWE-834 \u2014 Excessive Iteration
The product performs an iteration or loop without sufficiently limiting the number of times that the loop is executed.
Repository: https://github.com/rizinorg/rizin
Files changed:
librz/bin/format/elf/elf_info.c
Commit message: ELF: added vn_next break condition (#3214)

if the dynamic section's verneednum mismatches the true number of entries then the for loop in get_gnu_verneed will continue to iterate on the last entry since vn_next will be 0 on the last entry. If verneednum is set to all 0xff's it will take a very long time to finish this loop naturally drastically hindering binary load time. The solution is simple, to check for when vn_next == 0 and break out of the loop since all entries have been iterated over regardless of what verneednum indicates.

Vulnerable code:

Fixed code:
		if (!verneed_entry.vn_next) {
			break;
		}
CVE-2024-37169 (TypeScript, published 2024-06-10T22:15Z)
Description: value: @jmondi/url-to-png is a self-hosted URL to PNG utility. Versions prior to 2.0.3 are vulnerable to arbitrary file read if a threat actor uses the Playright's screenshot feature to exploit the file wrapper. Version 2.0.3 mitigates this issue by requiring input URLs to be of protocol `http` or `https`. No known workarounds are available aside from upgrading.
Severity: nan (CVSS v3 base score: )
Weakness: NVD-CWE-noinfo \u2014 Insufficient Information
There is insufficient information about the issue to classify it; details are unkown or unspecified.
Repository: https://github.com/jasonraimondi/url-to-png
Files changed:
src/lib/schema.ts
src/middlewares/extract_query_params.ts
tests/app.spec.ts
Commit message: fix(security): require screenshot protocol to be http/https

prevent file:// URI scheme in Playwright screenshots

A critical vulnerability was discovered in a web application feature that utilizes
Playwright's screenshot capability. Attackers could exploit this vulnerability by
using the file:// URI scheme to read arbitrary files on the server's filesystem,
potentially exposing sensitive information, such as AWS credentials.

This commit addresses the vulnerability by implementing proper input validation
and sanitization to prevent the use of the file:// URI scheme in Playwright
screenshot requests, mitigating the risk of unauthorized file access.

resolves #47


Vulnerable code:
const zodStringUrl = z.string().url();
  url: zodStringUrl,
      throw new HTTPException(400, { message: "Invalid query parameters", cause: errors });

Fixed code:
const urlSchema = z
  .string()
  .url()
  .refine(
    val => {
      try {
        const url = new URL(val);
        return url.protocol === "http:" || url.protocol === "https:";
      } catch (err) {
        return false;
      }
    },
    {
      message: "must start with http or https",
    },
  );
  url: urlSchema,
      let message: string = "Invalid query parameters: ";

      const specificErrors = Object.entries(errors).map(([key, value]) => `(${key} - ${value})`).join(" ")

      message = `${message} ${specificErrors}`;

      console.log(message);

      throw new HTTPException(400, { message, cause: errors });

    [
      "file:///etc/passwd&width=4000",
      "view-source:file:///home/&width=4000",
      "view-source:file:///home/ec2-user/url-to-png/.env",
    ].forEach(invalidDomain => {
      it(`throws when invalid protocol ${invalidDomain}`, async () => {
        const res = await app.request(`/?url=${invalidDomain}`);
        expect(res.status).toBe(400);
        expect(await res.text()).toMatch(/url - must start with http or https/gi);
      });
    });
CVE-2024-39918 (TypeScript, published 2024-07-15T20:15Z)
Description: value: @jmondi/url-to-png is an open source URL to PNG utility featuring parallel rendering using Playwright for screenshots and with storage caching via Local, S3, or CouchDB. Input of the `ImageId` in the code is not sanitized and may lead to path traversal. This allows an attacker to store an image in an arbitrary location that the server has permission to access. This issue has been addressed in version 2.1.2 and all users are advised to upgrade. There are no known workarounds for this vulnerability.

Severity: nan (CVSS v3 base score: )
Weakness: NVD-CWE-noinfo \u2014 Insufficient Information
There is insufficient information about the issue to classify it; details are unkown or unspecified.
Repository: https://github.com/jasonraimondi/url-to-png
Files changed:
src/middlewares/extract_query_params.ts
Commit message: sanitize params


Vulnerable code:
    const imageId = dateString + "." + slugify(validData.url) + configToString(params);

Fixed code:
    const imageId = dateString + "." + slugify(validData.url) + slugify(configToString(params));