The underlying cause appears to be that contrib/preseeds_v2/curtin_userdata is generating YAML using a free-form template and trying to interpolate text using *shell* escaping rules.
While it's generally unwise to generate YAML (and many other structured data exchange formats) by interpolating into a free-form template, we can fix this particular bug by removing uses of `escape.shell` from curtin_userdata.
A proper fix would be to eliminate the use of templates for preseed generation altogether since all but 2 generate YAML, and those 2 return exactly the input given, i.e. we have no need for templates.
The underlying cause appears to be that contrib/ preseeds_ v2/curtin_ userdata is generating YAML using a free-form template and trying to interpolate text using *shell* escaping rules.
While it's generally unwise to generate YAML (and many other structured data exchange formats) by interpolating into a free-form template, we can fix this particular bug by removing uses of `escape.shell` from curtin_userdata.
A proper fix would be to eliminate the use of templates for preseed generation altogether since all but 2 generate YAML, and those 2 return exactly the input given, i.e. we have no need for templates.