From dc92ee774aa63f4a3784b83c9bebc5fb014d81d4 Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Wed, 20 May 2026 12:23:00 -0300 Subject: [PATCH] Sanitize character name in load_character to prevent path traversal --- modules/chat.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/chat.py b/modules/chat.py index 2cb77698..969e1113 100644 --- a/modules/chat.py +++ b/modules/chat.py @@ -2122,9 +2122,10 @@ def load_character(character, name1, name2): greeting_field = 'greeting' picture = None + safe_name = sanitize_filename(character) filepath = None for extension in ["yml", "yaml", "json"]: - filepath = shared.user_data_dir / 'characters' / f'{character}.{extension}' + filepath = shared.user_data_dir / 'characters' / f'{safe_name}.{extension}' if filepath.exists(): break @@ -2140,7 +2141,7 @@ def load_character(character, name1, name2): for path in [cache_folder / "pfp_character.png", cache_folder / "pfp_character_thumb.png"]: path.unlink(missing_ok=True) - picture = generate_pfp_cache(character) + picture = generate_pfp_cache(safe_name) # Finding the bot's name for k in ['name', 'bot', '<|bot|>', 'char_name']: