A 1.0 patch release with a security fix; upgrading from 1.0.11 is recommended.
Security
Theming component templates now escape plain-string slot values. Every
slot_*value that reaches a theming component or page template, whether it is passed as atheme_*tag argument or through{% include %}/render_to_string, plus thecontentof atheme_tabsdict, was inserted into the page as HTML. These values are now autoescaped like{{ variable }}. Values that are already safe still render as HTML:mark_safeandformat_htmloutput, and string literals written in the template itself.{% djust_sw_register %}now encodessw_urlandscopeso that neither can end the inline script, and it escapes its CSP nonce attribute. TheMarkdownTextareapreview strips control and whitespace characters before it checks a link's scheme, and then accepts onlyhttp,https,mailtoand relative targets.Compatibility: an app that passed HTML to one of these values as a plain string from Python now sees that markup as escaped text. Examples are
slot_body="<p>…</p>"and tabcontentbuilt from markup. Useformat_htmlwhen the markup interpolates values, ormark_safefor constant markup. Never mark user-supplied text safe.