Page MenuHomePhabricator

Ignore css in displaytitle when $wgRestrictDisplayTitle is enabled
Open, MediumPublic

Description

Ignore css in displaytitle when $wgRestrictDisplayTitle is enabled

DISPLAYTITLE restrictions can be abused with css declarations such as font-size:0 , similar to display=none as was reported in T28547.

Propose disallowing all css declarations from the wikitext in to titles when $wgRestrictDisplayTitle is enabled

See also report on enwiki from user:InvalidOS here: https://en.wikipedia.org/w/index.php?title=Wikipedia:Administrators%27_noticeboard&oldid=894118189#Exploit_in_the_DISPLAYTITLE_behavior_switch_involving_html_tags

Event Timeline

Xaosflux renamed this task from Ignore css is displaytitle when $wgRestrictDisplayTitle is enabled to Ignore css in displaytitle when $wgRestrictDisplayTitle is enabled.Apr 25 2019, 7:50 PM
Xaosflux updated the task description. (Show Details)

All seems draconian seeing as there are many editors who put pretty colors on their user pages in the page title.

@Izno by default this isn't applied, only for projects that configure $wgRestrictDisplayTitle to be true

I don't think that such an extreme measure is a good idea; many users (including me) use CSS displaytitles on their userpages. Perhaps a better idea would be to ignore specific CSS properties.

@Pppery note, mediawiki in general supports most anything in display title if you enable displaytitle, if you do then you can also optionally lock it down - this ticket is only about locking it down. Individual WMF projects can certainly pick to enable or not enable lockdown. Perhaps a tangential task would be for something like a parameter to enforce in , or exempt in certain namespaces (if you'd want to go that route please open a different task though).

Change 507176 had a related patch set uploaded (by Pppery; owner: Pppery):
[mediawiki/core@master] Ignore CSS in displaytitle when $wgRestrictDisplayTitle is set

https://gerrit.wikimedia.org/r/507176

Individual WMF projects can certainly pick to enable or not enable lockdown.

This is technically true, but disabling the lock-down has major security issues (as this task shows) and we should probably re-visit that.

The threat model here is kind of debatable. Its unclear what security goals we are trying to accomplish with the displaytitle restrictions, and thus I'm unsure (unsure in the sense of actually do not know, not unsure in the sense of disagreeing) if further restrictions on it are justified.

For example, one potential threat model is that its supposed to ensure if you copy and page the page header, links still work properly. In which case the font-size:0 does not violate that as you still can copy and paste the whole thing.

If the risk people on this bug are concerned about is phising - well would super restrictive displaytitle actually stop that? If people are looking at just the first header of the page, they're probably also easily going to be tricked by external sites, or just pages with look-alike titles

While I did use an example page that replicated the Bureaucrats' Noticeboard, I believe that the greatest problem caused by this is its usage for vandalism. Vandals have already used this to vandalize pages, mostly making page titles appear as words such as "shit" and "crap".

Jcross triaged this task as Medium priority.Oct 4 2019, 4:32 PM
Jcross moved this task from Incoming to Watching on the Security-Team board.

Everyone talks about user-space, but some mainspace examples:

<span class="texhtml mvar" style="font-style:italic;">e</span> (mathematical constant)
<span class="texhtml mvar" style="font-style:italic;">p</span>-group
<span class="texhtml mvar" style="font-style:italic;">σ</span>-algebra
<i>Pseudotsuga menziesii <span style="font-style:normal;">var.</span> glauca</i>
<span lang="mi" style="font-style:normal;" title="Māori language text">Paikea</span>
<span class="texhtml mvar" style="font-style:italic;">e</span> (number)
<span style="text-decoration:overline;">SOS</span>
<i>Lactobacillus delbrueckii <span style="font-style:normal;">subsp.</span> bulgaricus</i>
Proof that <span class="texhtml mvar" style="font-style:italic;">e</span> is irrational
Proof that 22/7 exceeds <span class="texhtml mvar" style="font-style:italic;">π</span>
<span class="texhtml mvar" style="font-style:italic;">π</span>-calculus
List of topics related to <span class="texhtml mvar" style="font-style:italic;">π</span>
<i>Ulmus minor <span style="font-style:normal;">subsp.</span> minor</i>
<i>Sidalcea oregana <span style="font-style:normal;">var.</span> calva</i>
<span lang="gd" style="font-style:normal;" title="Scottish Gaelic language text">Bòrd na Gàidhlig</span>
<i>Capsicum annuum <span style="font-style:normal;">var.</span> glabriusculum</i>
Leibniz formula for <span class="texhtml mvar" style="font-style:italic;">π</span>
<i>Argyroxiphium sandwicense <span style="font-style:normal;">subsp.</span> macrocephalum</i>
<span class="texhtml mvar" style="font-style:italic;">x̅</span> and R chart
<i>S<span style="position:relative"><sup>m</sup><sub style="position:absolute; left:0; bottom:0">n</sub></span></i> theorem
<span lang="gd" style="font-style:normal;" title="Scottish Gaelic language text">Corrachadh Mòr</span>
<span class="texhtml mvar" style="font-style:italic;">e</span> (constant)
ISO-8859-8-<span style="font-family: &#39;Georgia Pro&#39;, Georgia, &#39;DejaVu Serif&#39;, Times, &#39;Times New Roman&#39;, serif;">I</span>
<i>Acacia ramulosa <span style="font-style:normal;">var.</span> linophylla</i>
<span style="font-family:Cambria">Ƙ</span>
List of newspapers that reprinted <i>Jyllands-Posten</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s Muhammad cartoons
<i>Rolling Stone</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s 500 Greatest Albums of All Time
<i>Rolling Stone</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s 500 Greatest Songs of All Time
Chronology of computation of <span class="texhtml mvar" style="font-style:italic;">π</span>
Approximations of <span class="texhtml mvar" style="font-style:italic;">π</span>
<span class="texhtml mvar" style="font-style:italic;">n</span>-ary
List of formulae involving <span class="texhtml mvar" style="font-style:italic;">π</span>
<i>Ulmus davidiana <span style="font-style:normal;">var.</span> japonica</i>
<i>Ulmus</i> 'Nanguen' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Lutece</span>
<i>Paeonia daurica <span style="font-style:normal;">subsp.</span> mlokosewitschii</i>
<i>TV Guide</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s 50 Greatest TV Shows of All Time
<i>Correa reflexa <span style="font-style:normal;">var.</span> speciosa</i>
<i>Ulmus</i> 'Wanoux' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Vada</span>
<i>Ampelopsis glandulosa <span style="font-style:normal;">var.</span> brevipedunculata</i>
<i>Ulmus</i> 'Morton' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Accolade</span>
<i>Ulmus</i> 'Morton Glossy' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Triumph</span>
<i>Ulmus</i> 'Morton Plainsman' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Vanguard</span>
<i>Ulmus</i> 'Morton Red Tip' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Danada Charm</span>
<i>Ulmus</i> 'Morton Stalwart' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Commendation</span>
<i>Banksia integrifolia <span style="font-style:normal;">subsp.</span> integrifolia</i>
<i>Banksia integrifolia <span style="font-style:normal;">subsp.</span> compar</i>
<i>Banksia integrifolia <span style="font-style:normal;">subsp.</span> monticola</i>
<i>Ulmus minor <span style="font-style:normal;">subsp.</span> canescens</i>
<i>Capparis spinosa <span style="font-style:normal;">subsp.</span> nummularia</i>
<i>Ulmus parvifolia</i> 'UPMTF' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Bosque</span>
<i>Ulmus parvifolia</i> 'Emer II' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Allee</span>
<i>Ulmus parvifolia</i> 'A. Ross Central Park' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Central Park Splendor</span>
<i>Ulmus parvifolia</i> 'Zettler' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Heritage</span>
<i>Ulmus davidiana</i> var. <i>japonica</i> 'JFS-Bieberich' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Emerald Sunshine</span>
<i>Ulmus laevis <span style="font-style:normal;">var.</span> celtidea</i>
<i>Eriogonum longifolium <span style="font-style:normal;">var.</span> harperi</i>
<i>Anadenanthera peregrina <span style="font-style:normal;">var.</span> falcata</i>
<i>Anadenanthera colubrina <span style="font-style:normal;">var.</span> cebil</i>
<i>Ulmus laciniata <span style="font-style:normal;">var.</span> nikkoensis</i>
<i>Ulmus americana <span style="font-style:normal;">var.</span> floridana</i>
<i>Ulmus bergmanniana <span style="font-style:normal;">var.</span> bergmanniana</i>
<i>Ulmus bergmanniana <span style="font-style:normal;">var.</span> lasiophylla</i>
<i>Ulmus changii <span style="font-style:normal;">var.</span> changii</i>
<i>Ulmus changii <span style="font-style:normal;">var.</span> kunmingensis</i>
<i>Ulmus glaucescens <span style="font-style:normal;">var.</span> glaucescens</i>
<i>Ulmus glaucescens <span style="font-style:normal;">var.</span> lasiocarpa</i>
<i>Ulmus macrocarpa <span style="font-style:normal;">var.</span> glabra</i>
<i>Ulmus macrocarpa <span style="font-style:normal;">var.</span> macrocarpa</i>
<i>Ulmus davidiana <span style="font-style:normal;">var.</span> davidiana</i>
<i>Ulmus parvifolia <span style="font-style:normal;">var.</span> coreana</i>
<i>Coincya monensis <span style="font-style:normal;">subsp.</span> monensis</i>
<i>Coincya monensis <span style="font-style:normal;">subsp.</span> recurvata</i>
<i>Muehlenbeckia horrida <span style="font-style:normal;">subsp.</span> abdita</i>
<i>Parapuzosia <span style="font-style:normal;">(</span>Austiniceras<span style="font-style:normal;">)</span></i>
<i>Puzosia <span style="font-style:normal;">(</span>Bhimaites<span style="font-style:normal;">)</span></i>
<i>Banksia armata <span style="font-style:normal;">var.</span> armata</i>
<i>Banksia armata <span style="font-style:normal;">var.</span> ignicida</i>
<i>Olea europaea <span style="font-style:normal;">subsp.</span> cuspidata</i>
<i>Ulmus laevis <span style="font-style:normal;">var.</span> simplicidens</i>
<i>Yucca gloriosa <span style="font-style:normal;">var.</span> tristis</i>
<i>Lilium pardalinum <span style="font-style:normal;">subsp.</span> pitkinense</i>
<i>Lupinus latifolius <span style="font-style:normal;">var.</span> barbatus</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> adstringens</i>
<i>Acacia ayersiana <span style="font-style:normal;">var.</span> latifolia</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> cupressiformis</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> hemispherica</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> indica</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> kraussiana</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> nilotica</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> subalata</i>
<i>Vachellia nilotica <span style="font-style:normal;">subsp.</span> tomentosa</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> aneura</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> argentea</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> fuliginea</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> intermedia</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> macrocarpa</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> major</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> microcarpa</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> pilbarana</i>
<i>Acacia aneura <span style="font-style:normal;">var.</span> tenuis</i>
<i>Anadenanthera peregrina <span style="font-style:normal;">var.</span> peregrina</i>
<i>Acacia coriacea <span style="font-style:normal;">subsp.</span> coriacea</i>
<i>Acacia coriacea <span style="font-style:normal;">subsp.</span> pendens</i>
<i>Acacia coriacea <span style="font-style:normal;">subsp.</span> sericophylla</i>
<i>Acaciella angustissima <span style="font-style:normal;">var.</span> suffrutescens</i>
<i>Acacia acuminata <span style="font-style:normal;">subsp.</span> acuminata</i>
<i>Vachellia aroma <span style="font-style:normal;">var.</span> aroma</i>
<i>Vachellia aroma <span style="font-style:normal;">var.</span> huarango</i>
<i>Vachellia caven <span style="font-style:normal;">var.</span> caven</i>
<i>Vachellia caven <span style="font-style:normal;">var.</span> dehiscens</i>
<i>Vachellia caven <span style="font-style:normal;">var.</span> microcarpa</i>
<i>Vachellia caven <span style="font-style:normal;">var.</span> stenocarpa</i>
<i>Senegalia polyacantha <span style="font-style:normal;">subsp.</span> campylacantha</i>
List of <i>Footballers<span class="nowrap" style="padding-left:0.1em;">&#39;</span> Wives</i> characters
<i>Banksia laevigata <span style="font-style:normal;">subsp.</span> laevigata</i>
<i>Gaeumannomyces graminis <span style="font-style:normal;">var.</span> avenae</i>
<i>Gaeumannomyces graminis <span style="font-style:normal;">var.</span> graminis</i>
<i>Nectria mammoidea <span style="font-style:normal;">var.</span> rubi</i>
List of <i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>Til Death</i> episodes
<i>Rhododendron minus <span style="font-style:normal;">var.</span> chapmanii</i>
<i>Diaporthe phaseolorum <span style="font-style:normal;">var.</span> phaseolorum</i>
<i>Anadenanthera colubrina <span style="font-style:normal;">var.</span> colubrina</i>
<i>Ulmus wallichiana <span style="font-style:normal;">subsp.</span> xanthoderma</i>
<i>Ulmus wallichiana <span style="font-style:normal;">subsp.</span> wallichiana</i>
<i>Ulmus wallichiana <span style="font-style:normal;">var.</span> tomentosa</i>
<i>Uromyces lineolatus <span style="font-style:normal;">subsp.</span> nearcticus</i>
<i>Uromyces trifolii-repentis <span style="font-style:normal;">var.</span> fallens</i>
<i>Uromyces viciae-fabae <span style="font-style:normal;">var.</span> viciae-fabae</i>
<i>Pythium ultimum <span style="font-style:normal;">var.</span> ultimum</i>
<i>Podosphaera clandestina <span style="font-style:normal;">var.</span> clandestina</i>
<i>Time</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s All-Time 100 Movies
<i>Geotrichum candidum <span style="font-style:normal;">var.</span> citri-aurantii</i>
List of representations of <span class="texhtml mvar" style="font-style:italic;">e</span>
<i>Banksia spinulosa <span style="font-style:normal;">var.</span> collina</i>
<i>Puccinia extensicola <span style="font-style:normal;">var.</span> hieraciata</i>
<i>Diaporthe phaseolorum <span style="font-style:normal;">var.</span> caulivora</i>
<i>Diaporthe phaseolorum <span style="font-style:normal;">var.</span> sojae</i>
<i>Puccinia substriata <span style="font-style:normal;">var.</span> indica</i>
<i>Uromyces proeminens <span style="font-style:normal;">var.</span> poinsettiae</i>
2<span class="texhtml mvar" style="font-style:italic;">π</span> theorem
<i>Mentha longifolia <span style="font-style:normal;">var.</span> asiatica</i>
<i>Ulmus parvifolia</i> 'BSNUPF' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Everclear</span>
<i>Zapoteca portoricensis <span style="font-style:normal;">subsp.</span> portoricensis</i>
Proof that <span class="texhtml mvar" style="font-style:italic;">π</span> is irrational
<i>Ficus popenoei <span style="font-style:normal;">subsp.</span> malacocarpa</i>
<i>Sambucus racemosa <span style="font-style:normal;">subsp.</span> racemosa</i>
<i>Conospermum stoechadis <span style="font-style:normal;">subsp.</span> sclerophyllum</i>
<i>Epipactis helleborine <span style="font-style:normal;">var.</span> youngiana</i>
<i>Banksia spinulosa <span style="font-style:normal;">var.</span> spinulosa</i>
<i>Banksia spinulosa <span style="font-style:normal;">var.</span> cunninghamii</i>
<span class="texhtml mvar" style="font-style:italic;">x̅</span> and s chart
10<span style="position:absolute; top: -9999px">^</span><sup>16</sup> to 1
Liu Hui's <span class="texhtml mvar" style="font-style:italic;">π</span> algorithm
<i>Portland</i><span style="position:absolute; top: -9999px"> (shipwreck)</span>
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s New England Expeditionary Raid
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s Gulf of Mexico Expeditionary Raid
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s South Atlantic Expeditionary Raid
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s South African Expeditionary Raid
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s Indian Ocean Expeditionary Raid
CSS <i>Alabama</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s South Pacific Expeditionary Raid
<span class="texhtml mvar" style="font-style:italic;">n</span>-body problem
I am the <span style="font-variant:small-caps">Lord</span> thy God
&#928;<sup>0</sup><sub><span style="margin-left:-0.5em">1</span></sub> class
<i>Le Monde</i><span class="nowrap" style="padding-left:0.1em;">&#39;s</span> 100 Books of the Century
<span class="music-symbol" style="font-family: Arial Unicode MS, Lucida Sans Unicode;"><span class="music-flat">&#x266d;</span></span>VII–V<sup>7</sup> cadence
<i>Buddleja crispa</i> 'Huimoon' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Moon Dance</span>
<i>Buddleja davidii</i> 'Adokeep' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Adonis Blue</span>
<i>Buddleja davidii</i> 'Camkeep' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Camberwell Beauty</span>
<i>Buddleja</i> 'Minpap' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Reve de Papillon</span>
<i>Buddleja davidii</i> 'Buddma' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Moonshine</span>
<i>Buddleja davidii</i> 'Mongo' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Nanho Blue</span>
<i>Buddleja davidii</i> 'Monum' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Nanho Purple</span>
<i>Buddleja davidii</i> 'Monite' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Nanho White</span>
<i>Buddleja davidii</i> 'Notbud' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Masquerade</span>
<i>Buddleja davidii</i> 'Courtabud' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Operette</span>
<i>Buddleja davidii</i> 'Peakeep' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Peacock</span>
<i>Buddleja davidii</i> 'Pyrkeep'  = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Purple Emperor</span>
<i>Buddleja davidii</i> 'Thia' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Santana</span>
<i>Buddleja</i> 'Monrell' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Strawberry Lemonade</span>
<i>Buddleja davidii</i> 'Grefoj' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Fourth of July</span>
<i>Buddleja</i> 'Podaras4' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Grande Blueberry Cobbler</span>
<i>Buddleja</i> 'Podaras5' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Grande Peach Cobbler</span>
<i>Buddleja</i> 'Podaras2' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Grande Sweet Marmalade</span>
<i>Buddleja</i> 'Podaras3' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Grande Tangerine Dream</span>
<i>Buddleja</i> 'Podaras1' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Grande Vanilla</span>
<i>Buddleja</i> 'Podaras8' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Blue Heaven</span>
<i>Buddleja</i> 'Podaras16' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Pink</span>
<i>Buddleja</i> 'Podaras15' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Snow White</span>
<i>Buddleja</i> 'Podaras13' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Tutti Fruitti Pink</span>
<i>Buddleja</i> 'Lonplum' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Sugar Plum</span>
<i>Buddleja</i> 'Morning Mist' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Silver Anniversary</span>
<i>Buddleja</i> 'Podaras12' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Flow Lavender</span>
<i>Buddleja</i> 'Podaras10' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Dark Pink</span>
<i>Buddleja</i> 'Podaras14' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Petite Fuchsia</span>
<i>Buddleja</i> 'Podaras11' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Lavender</span>
<i>Buddleja</i> 'Podaras7' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Flow Mauve Pink</span>
<i>Buddleja</i> 'Podaras6' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Peace</span>
<i>Buddleja</i> 'Podaras9' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Flutterby Pink</span>
<span class="smallcaps"><span style="font-variant: small-caps; text-transform: lowercase;">L</span></span>-Norpseudoephedrine
<i>Buddleja</i> 'ILVOargus2' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Argus Velvet</span>
<i>Buddleja</i> 'ILVOargus1' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Argus White</span>
<span style="text-transform:lowercase;">london2012.com</span>
<span style="text-transform:lowercase;">of</span><span> Verona</span>
<i>Buddleja</i> 'Minpap3' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Reve de Papillon Blue</span>
<i>Buddleja</i> 'Minpap2' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Reve de Papillon White</span>
<i>Buddleja davidii</i> 'Tobuivo' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Ivory</span>
<i>Buddleja davidii</i> 'Tobudpipur' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Magenta</span>
<i>Buddleja davidii</i> 'Tobudviole' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Lavender</span>
<i>Buddleja davidii</i> 'Tobuskyblu' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Sky Blue</span>
<i>NME</i><span class="nowrap" style="padding-left:0.1em;">&#39;s</span> Cool List
<i>Buddleja</i> 'Hinebud 3' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Angel White</span>
<i>Buddleja</i> 'Hinebud 1' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Lavender Veil</span>
<i>Buddleja</i> 'Hinebud 2' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Purple Splendor</span>
Kalai's 3<span style="position: absolute; top: -9999px;">^</span><sup><i>d</i></sup> conjecture
<i>Buddleja davidii</i> 'SMBDPB' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Merry Magic Orchid</span>
<i>Buddleja davidii</i> 'SMBDPL' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Merry Magic Purple</span>
<i>Buddleja davidii</i> 'SMBDVL' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Merry Magic Violet</span>
<i>Buddleja davidii</i> 'Harkstead Indigo' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Indigo</span>
<i>Buddleja davidii</i> 'Tobudvelve' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Buzz Red</span>
<i>Buddleja davidii</i> 'PIIBD-II' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Funky Fuchsia</span>
<i>Buddleja davidii</i> 'PIIBD-I' = <span class="trade_designation" style="font-variant:small-caps; margin-left: 0.05em;">Groovy Grape</span>
2-Amino-5-formylamino-6-(5-phospho-<span class="smallcaps"><span style="font-variant: small-caps; text-transform: lowercase;">D</span></span>-ribosylamino)pyrimidin-4(3<i>H</i>)-one
Zhao Youqin's <span class="texhtml mvar" style="font-style:italic;">π</span> algorithm
<span class="texhtml mvar" style="font-style:italic;">x̄</span> and R chart
<i>NME</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s The 500 Greatest Albums of All Time
<span class="smallcaps"><span style="font-variant: small-caps; text-transform: lowercase;">L</span></span>-Photo-leucine
<i>The Guardian</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s 100 Best Novels Written in English
<i>FHM</i><span class="nowrap" style="padding-left:0.1em;">&#39;s</span> 100 Sexiest Women (UK)
List of <i>Brunch at Bobby<span class="nowrap" style="padding-left:0.1em;">&#39;</span>s</i> episodes
<i>Rolling Stone</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s 100 Greatest Songwriters of All Time
<i>Radio Times</i><span class="nowrap" style="padding-left:0.1em;">&#39;s</span> Most Powerful People
<i>Cahiers du cinéma</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s Annual Top 10 Lists
<i>Rosa</i> <q style="quotes: &quot;&#39;&quot; &quot;&#39;&quot;;">Graham Thomas</q>
<i>Rolling Stone Argentina</i><span class="nowrap" style="padding-left:0.1em;">&#39;</span>s The 100 Greatest Albums of National Rock

Most of these could be replaced with different use of <i> tags I suppose. The small-caps usages seem the most legit, although i suppose if we do this change, that can always be replaced by css classes.

I was about to say "allowing classes would also defeat the point, since you could define a class with word-hiding CSS using TemplateStyles", but it appears that the display title does not get the .mw-parser-output class, so can't be styled that way.

Things like Kalai's 3<span style="position: absolute; top: -9999px;">^</span><sup><i>d</i></sup> conjecture are really interesting though, as that's kind of what this task specifically wants to prevent.

In that case, the article should just be moved to "Kalai's 3d conjecture" or "Kalai's 3ᵈ conjecture" (the latter example uses a unicode subscript character)

I was about to say "allowing classes would also defeat the point, since you could define a class with word-hiding CSS using TemplateStyles", but it appears that the display title does not get the .mw-parser-output class, so can't be styled that way.

Actually, that's not the case, since the wikitext for the display title could include .mw-parser-output itself. It appears you can even use a similar hack to include actual display:none markup, which means it should be fixed independently of this task, and I should probably file a separate task for it.