Skip to content

out_opensearch: escape customize_template values as JSON strings - #194

Merged
Watson1978 merged 1 commit into
mainfrom
fix-customize-template
Sep 18, 2026
Merged

Watson1978 merged 1 commit into
mainfrom
fix-customize-template

Conversation

@kenhys

@kenhys kenhys commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Before: get_custom_template put each customize_template value into the template text with a plain gsub. A value can be expanded from a tag or a record field, so a " in it closed the JSON string it sat in and the rest was read as more template keys. A log sender could add index_patterns, order and aliases and have fluentd PUT that index template with its own credentials. gsub also read backslash sequences such as \0 in the replacement.

After: the value is escaped as JSON string content before it is substituted, and the block form of gsub keeps the replacement literal. A value can only become one string in the template.

@kenhys
kenhys requested a review from Watson1978 September 17, 2026 01:35
@kenhys
kenhys marked this pull request as ready for review September 17, 2026 03:24
Comment thread lib/fluent/plugin/opensearch_index_template.rb Outdated
Before: get_custom_template put each customize_template value into the
template text with a plain gsub. A value can come from a tag or a record
field, so a `"` in it ended the JSON string it was in, and the rest was
read as extra template keys. A log sender could add index_patterns,
order and aliases, and fluentd then sent that index template to the
server with its own credentials. gsub also read backslash sequences
such as \0 in the value.

After: if the key is inside a JSON string, the value is escaped, so it
can only become one string. If the key is anywhere else, the value is
still a piece of JSON, like a whole settings object. The block form of
gsub stops gsub from reading backslash sequences in the value.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Kentaro Hayashi <hayashi@clear-code.com>
@kenhys
kenhys force-pushed the fix-customize-template branch from 64b0e2f to ff0899f Compare September 18, 2026 07:16
@Watson1978
Watson1978 merged commit 446c510 into main Sep 18, 2026
23 checks passed
@Watson1978
Watson1978 deleted the fix-customize-template branch September 18, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants