{"id":"CVE-2026-118995","kind":"vulnerability","aliases":["CVE-2026-118995"],"related":[],"title":"CallBackery for Perl: form validation accepts values it should reject","description":"CallBackery versions before 0.62.0 for Perl accept unintended values in form fields checked by createRxValidator.\n\ncreateRxValidator() is documented to anchor the supplied pattern at both ends, but builds /^${rx}$/ without grouping the pattern. An alternation such as yes|no then accepts any value starting with yes or ending with no, and $ also accepts a value with one trailing newline.\n\nAn authenticated user can submit values the pattern was meant to reject, which an application may then write into generated configuration files.","summary":"CallBackery's createRxValidator builds an unanchored-group regex, so alternation patterns like yes|no match values that merely start or end with those words, and a trailing newline is accepted. An authenticated user can submit values the form was meant to reject, which the application may write into generated configuration files.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["callbackery","package","perl"],"not_affected_if":["no-authenticated-users","no-createrxvalidator-usage","version-0.62.0-or-later"],"how_to_check":"- Check the installed CallBackery version for Perl; the sources say versions before `0.62.0` are affected.\n- Look for forms that use createRxValidator with alternation patterns (for example `yes|no`) whose values feed generated config files.","fix":"- CallBackery for Perl: move to `0.62.0` or later.","status":"open","published_at":"2026-10-30T13:18:32+00:00","first_seen_at":"2026-10-30T13:30:27+00:00","triaged_at":"2026-10-30T13:32:23+00:00","updated_at":"2026-10-30T13:32:23+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-30T13:32:23Z","model":"claude-haiku-5-5","output":{"fix":"- CallBackery for Perl: move to `0.62.0` or later.","reach":"network","title":"CallBackery for Perl: form validation accepts values it should reject","impact":"low","summary":"CallBackery's createRxValidator builds an unanchored-group regex, so alternation patterns like yes|no match values that merely start or end with those words, and a trailing newline is accepted. An authenticated user can submit values the form was meant to reject, which the application may write into generated configuration files.","audience":"developers","category":"package","nicknames":[],"who_cares":["perl","callbackery"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated user writes unintended values into configuration files","analyst_note":"","how_to_check":"- Check the installed CallBackery version for Perl; the sources say versions before `0.62.0` are affected.\n- Look for forms that use createRxValidator with alternation patterns (for example `yes|no`) whose values feed generated config files.","plain_action":"","needs_analyst":false,"not_affected_if":["version-0.62.0-or-later","no-authenticated-users","no-createRxValidator-usage"],"who_is_affected":"Applications built on CallBackery for Perl that use createRxValidator on form fields, especially those whose submitted values are written into generated configuration files. The sources require an authenticated user to exploit it, so public pages without login are less exposed. Teams not using CallBackery can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.000687,"input_tokens":4185,"output_tokens":538,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-118995':13A,16A '-2026':12A,15A '0.62.0':75C 'accept':6A,50B,78C,112C,124C 'also':123C 'altern':30B,106C 'anchor':91C 'applic':65B,145C 'authent':52B,132C 'build':23B,99C 'callbackeri':1A,17B,20B,72C 'check':84C 'configur':70B,151C 'createrxvalid':22B,86C,87C 'cve':11A,14A 'document':89C 'end':41B,97C,119C 'field':83C 'file':71B,152C 'form':4A,58B,82C 'generat':69B,150C 'group':27B,102C 'like':32B 'match':35B 'may':66B,146C 'meant':60B,140C 'mere':38B 'newlin':48B,130C 'one':128C 'packag':18B 'pattern':31B,94C,104C,138C 'perl':3A,19B,77C 'regex':28B 'reject':10A,62B,142C 'rx':100C 'start':39B,115C 'submit':55B,135C 'suppli':93C 'trail':47B,129C 'unanchor':26B 'unanchored-group':25B 'unintend':79C 'user':53B,133C 'valid':5A 'valu':7A,36B,56B,80C,114C,126C,136C 'version':73C 'without':101C 'word':44B 'write':67B,148C 'yes':33B,109C,117C","nicknames":[],"mitigations":[],"who_affected":"Applications built on CallBackery for Perl that use createRxValidator on form fields, especially those whose submitted values are written into generated configuration files. The sources require an authenticated user to exploit it, so public pages without login are less exposed. Teams not using CallBackery can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-10-30T13:18:32+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118995","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118995","severity":null,"published_at":"2026-10-30T13:18:32+00:00","modified_at":"2026-10-30T13:18:32+00:00","first_seen_at":"2026-10-30T13:30:27+00:00","fetched_at":"2026-10-30T13:30:27+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}