Changes for page What an XWiki Security Review Should Actually Include
Last modified by Agnease on 2026/06/08 18:44
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -28,10 +28,14 @@ 28 28 <h4>In this guide</h4> 29 29 <ul> 30 30 <li><a href="#why-it-matters">Why it matters</a></li> 31 + <li><a href="#quick-self-check">Quick self-check</a></li> 31 31 <li><a href="#what-to-review">What to review</a></li> 33 + <li><a href="#common-findings">Common findings</a></li> 32 32 <li><a href="#security-checklist">Security checklist</a></li> 33 33 <li><a href="#review-output">What the review should produce</a></li> 36 + <li><a href="#readiness-checklist">What to prepare</a></li> 34 34 <li><a href="#when-to-review">When to run a review</a></li> 38 + <li><a href="#security-review-faq">FAQ</a></li> 35 35 </ul> 36 36 </aside> 37 37 ... ... @@ -44,6 +44,11 @@ 44 44 </p> 45 45 46 46 <p> 51 + An XWiki security review is a practical audit of the platform configuration, access model, 52 + authentication setup, installed extensions, custom code, infrastructure and recovery procedures. 53 + </p> 54 + 55 + <p> 47 47 Security risks are often hidden in less visible areas: outdated versions, inherited permissions, 48 48 forgotten administrator accounts, overly powerful rights, old extensions, undocumented scripts, 49 49 weak fallback access or backup assumptions that were never tested. ... ... @@ -51,6 +51,20 @@ 51 51 52 52 <div class="resource-note"> 53 53 <p> 63 + <strong>In practice:</strong> an XWiki security review should evaluate the XWiki version, 64 + access rights, authentication setup, installed extensions, custom code, infrastructure, 65 + backups, restore expectations and the operational practices used to maintain the instance. 66 + </p> 67 + </div> 68 + 69 + <p> 70 + The value of the review is not only to find technical issues. It is to understand how the instance is actually 71 + used, where risk has accumulated over time, and what should be cleaned up before the next upgrade, migration, 72 + authentication change or business-critical rollout. 73 + </p> 74 + 75 + <div class="resource-note"> 76 + <p> 54 54 <strong>The main point:</strong> an XWiki security review should not only check whether the application 55 55 is online. It should evaluate the platform, the access model and the operational practices around it. 56 56 </p> ... ... @@ -70,10 +70,34 @@ 70 70 </p> 71 71 72 72 <p> 73 - A security review helps identify risks before they become incidents, upgrade blockers or maintenance 74 - surprises. It also gives administrators a clearer view of the current state of the instance. 96 + In real XWiki instances, security problems are rarely caused by a single visible mistake. They often come from 97 + years of small configuration decisions: one temporary group, one local right exception, one old extension, one 98 + undocumented script, one backup procedure that nobody has tested recently. 75 75 </p> 76 76 101 + <h2 id="quick-self-check">Quick self-check: does your XWiki need a security review?</h2> 102 + 103 + <p> 104 + Your XWiki instance may need a security review if one or more of these situations sound familiar. 105 + </p> 106 + 107 + <ul class="resource-checklist"> 108 + <li>You are not sure who currently has admin, script or programming rights.</li> 109 + <li>The instance has not been upgraded regularly or the upgrade path is unclear.</li> 110 + <li>SSO, LDAP, OIDC or SAML was configured years ago and not reviewed recently.</li> 111 + <li>Custom scripts, templates, macros or extensions exist but are not clearly documented.</li> 112 + <li>Groups and page-level rights have grown organically over several years.</li> 113 + <li>Backups exist, but the restore process has not been tested or documented.</li> 114 + <li>A new team inherited the instance and has to guess how rights, extensions or customizations were configured.</li> 115 + </ul> 116 + 117 + <div class="resource-note"> 118 + <p> 119 + <strong>Practical signal:</strong> if the instance works but nobody can clearly explain the access model, 120 + the customizations and the recovery process, the risk is not only technical. It is operational. 121 + </p> 122 + </div> 123 + 77 77 <h2 id="what-to-review">What should be reviewed</h2> 78 78 79 79 <h3>1. Version and upgrade status</h3> ... ... @@ -88,6 +88,11 @@ 88 88 A repeatable upgrade process is part of the security posture of a long-running XWiki instance. 89 89 </p> 90 90 138 + <p> 139 + For more details on upgrade planning, see 140 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">why regular XWiki upgrades matter</a>. 141 + </p> 142 + 91 91 <h3>2. Access rights and permission model</h3> 92 92 <p> 93 93 XWiki has a powerful access-rights system, but this flexibility needs a clear governance model. A review ... ... @@ -101,6 +101,13 @@ 101 101 of small exceptions that nobody reviewed later. 102 102 </p> 103 103 156 + <p> 157 + For a deeper look at this topic, see 158 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">why XWiki access rights need a clear governance model</a>. 159 + For a practical starting point, see 160 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">how to start an XWiki access-rights review</a>. 161 + </p> 162 + 104 104 <h3>3. Authentication and identity management</h3> 105 105 <p> 106 106 Authentication should be reviewed beyond the simple question of whether users can log in. LDAP, Active ... ... @@ -125,6 +125,11 @@ 125 125 discovered accidentally during an incident or a production upgrade. 126 126 </p> 127 127 187 + <p> 188 + Customizations should also be reviewed from a maintenance perspective. See 189 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>. 190 + </p> 191 + 128 128 <h3>5. Configuration, infrastructure and operations</h3> 129 129 <p> 130 130 The review should also cover the environment around XWiki: HTTPS and reverse proxy configuration, database ... ... @@ -137,9 +137,55 @@ 137 137 knows what is included, how long recovery would take or whether the restore process has ever been tested. 138 138 </p> 139 139 140 - <h2 id="security-checklist">Practical XWiki security review checklist</h2> 204 + <div class="resource-inline-cta"> 205 + <p> 206 + <strong>Need a clearer view of your XWiki security posture?</strong> 207 + A structured review can check versions, access rights, authentication, 208 + extensions, custom code, infrastructure, backups and operational practices. 209 + </p> 210 + <a class="btn btn-default" href="$xwiki.getURL('contact.WebHome')">Request a security review</a> 211 + </div> 141 141 213 + <h2 id="common-findings">Common findings in real XWiki security reviews</h2> 214 + 215 + <p> 216 + In real XWiki instances, security risks are often not caused by one major mistake. They usually come from 217 + configuration decisions that were reasonable at the time but were never reviewed together later. 218 + </p> 219 + 142 142 <ul class="resource-checklist"> 221 + <li>Old administrator accounts that are still active.</li> 222 + <li>Script or programming rights granted to users who no longer maintain the platform.</li> 223 + <li>Groups created for old projects that still grant access.</li> 224 + <li>Page-level rights added as exceptions and never documented.</li> 225 + <li>Custom Velocity or Groovy code that is business-critical but undocumented.</li> 226 + <li>Extensions installed years ago without a clear owner or upgrade validation process.</li> 227 + <li>SSO configured correctly for login, but not reviewed together with XWiki groups.</li> 228 + <li>Backup jobs scheduled automatically, but restore expectations never tested.</li> 229 + <li>Production changes performed without a staging or rollback habit.</li> 230 + </ul> 231 + 232 + <h2 id="what-this-is-not">What this review is not</h2> 233 + 234 + <p> 235 + A security review is not a one-click scan and it is not limited to checking the installed XWiki version. 236 + Automated checks can help, but they cannot fully explain why a group has access, whether a custom script is still 237 + needed, or whether a restore procedure would actually work during an incident. 238 + </p> 239 + 240 + <p> 241 + The review should combine technical checks with context: how the wiki is used, which areas are sensitive, which 242 + users administer it, what customizations matter and what the organization expects during an incident or upgrade. 243 + </p> 244 + 245 + <h2 id="security-checklist">XWiki security review checklist</h2> 246 + 247 + <p> 248 + A practical XWiki security review should cover both application-level and operational risks. 249 + The following checklist can be used as a starting point when reviewing a production instance. 250 + </p> 251 + 252 + <ul class="resource-checklist"> 143 143 <li>Check the current XWiki version, target version and upgrade path.</li> 144 144 <li>Review installed extensions, outdated components and unsupported customizations.</li> 145 145 <li>Audit administrator, script and programming rights.</li> ... ... @@ -155,8 +155,8 @@ 155 155 <h2 id="review-output">What the review should produce</h2> 156 156 157 157 <p> 158 - A useful security review should not only produce a list of detected problems. It should produce a practical action159 - plan. Each finding should explain the risk, the affected area, the recommended action and the priority. 268 + A useful security review should not only produce a list of detected problems. It should produce a practical 269 + action plan. Each finding should explain the risk, the affected area, the recommended action and the priority. 160 160 </p> 161 161 162 162 <p> ... ... @@ -165,6 +165,41 @@ 165 165 reviewing extensions or preparing the next upgrade. 166 166 </p> 167 167 278 + <div class="resource-note"> 279 + <p> 280 + <strong>A useful review should separate findings by priority:</strong> immediate risks, 281 + planned remediation, maintenance improvements and documentation gaps. This makes the result 282 + easier to act on instead of producing a generic list of observations. 283 + </p> 284 + </div> 285 + 286 + <h3>Example review finding</h3> 287 + 288 + <table class="table table-bordered table-striped"> 289 + <thead> 290 + <tr> 291 + <th>Finding</th> 292 + <th>Risk</th> 293 + <th>Recommended action</th> 294 + <th>Priority</th> 295 + </tr> 296 + </thead> 297 + <tbody> 298 + <tr> 299 + <td>Several users have script rights but are no longer responsible for XWiki administration.</td> 300 + <td>Powerful rights remain active without clear ownership.</td> 301 + <td>Confirm the current need, remove obsolete assignments and document approved technical users.</td> 302 + <td>High</td> 303 + </tr> 304 + <tr> 305 + <td>Backups are scheduled, but the restore process has not been tested recently.</td> 306 + <td>Recovery expectations may be incorrect during an incident.</td> 307 + <td>Document backup coverage and perform a restore validation on a test environment.</td> 308 + <td>Medium</td> 309 + </tr> 310 + </tbody> 311 + </table> 312 + 168 168 <p> 169 169 The best outcome is a clearer, safer and more maintainable XWiki instance: one where administrators 170 170 understand the access model, critical features are documented and future upgrades can be planned with ... ... @@ -171,6 +171,24 @@ 171 171 fewer surprises. 172 172 </p> 173 173 319 + <h2 id="readiness-checklist">XWiki security review readiness checklist</h2> 320 + 321 + <p> 322 + Before starting a security review, prepare the following information. This makes the review faster and helps 323 + identify risks more clearly. 324 + </p> 325 + 326 + <ul class="resource-checklist"> 327 + <li>Current XWiki version and target upgrade version, if an upgrade is planned.</li> 328 + <li>List of installed extensions and known custom applications.</li> 329 + <li>Authentication method: local users, LDAP, OIDC, SAML, SSO or MFA.</li> 330 + <li>Known restricted spaces, confidential areas or public-facing pages.</li> 331 + <li>List of technical administrators and users with powerful rights.</li> 332 + <li>Known custom scripts, templates, macros, UI extensions or Java components.</li> 333 + <li>Backup location, frequency and last restore test, if known.</li> 334 + <li>Staging or test environment availability.</li> 335 + </ul> 336 + 174 174 <h2 id="when-to-review">When should an XWiki security review be done?</h2> 175 175 176 176 <p> ... ... @@ -184,15 +184,89 @@ 184 184 permissions, extensions, customizations and recovery procedures were configured years earlier. 185 185 </p> 186 186 187 - <div class="resource-note"> 350 + <div class="resource-note related-resources"> 351 + <p><strong>Security review series:</strong></p> 352 + <ul> 353 + <li> 354 + <a href="$xwiki.getURL('resources.xwiki-security-review')">What an XWiki security review should actually include</a> 355 + </li> 356 + <li> 357 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a> 358 + </li> 359 + <li> 360 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a> 361 + </li> 362 + </ul> 188 188 <p> 189 - Related resources: 190 - <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">why regular XWiki upgrades matter</a> 191 - and 192 - <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>. 364 + Future topics will cover authentication and access control, script and programming rights, 365 + backup validation, extension review and operational practices. 193 193 </p> 194 194 </div> 195 195 369 + <h2 id="security-review-faq">XWiki security review FAQ</h2> 370 + 371 + <details class="resource-faq-item" open> 372 + <summary>What should an XWiki security review include?</summary> 373 + <p> 374 + An XWiki security review should include the installed XWiki version, upgrade path, 375 + access rights, groups, authentication setup, installed extensions, custom code, 376 + infrastructure, backups, restore expectations and operational procedures. 377 + </p> 378 + </details> 379 + 380 + <details class="resource-faq-item"> 381 + <summary>Is an updated XWiki instance automatically secure?</summary> 382 + <p> 383 + No. Updating XWiki is important, but security also depends on permissions, 384 + authentication, extensions, custom code, infrastructure configuration, backups 385 + and how the instance is maintained. 386 + </p> 387 + </details> 388 + 389 + <details class="resource-faq-item"> 390 + <summary>Does SSO solve XWiki access control?</summary> 391 + <p> 392 + No. SSO helps authenticate users, but access control still depends on XWiki groups, 393 + inherited permissions, page-level rights and administrative privileges. 394 + </p> 395 + </details> 396 + 397 + <details class="resource-faq-item"> 398 + <summary>Why should custom code be reviewed?</summary> 399 + <p> 400 + Custom scripts, templates, macros, UI extensions and Java components can affect 401 + permissions, workflows, rendering, integrations and upgrade behavior. They should 402 + be identified, documented and tested. 403 + </p> 404 + </details> 405 + 406 + <details class="resource-faq-item"> 407 + <summary>When should an XWiki security review be done?</summary> 408 + <p> 409 + A review is useful before a major upgrade, after years of organic growth, after 410 + authentication changes, before exposing the wiki more broadly, or when the instance 411 + becomes business-critical. 412 + </p> 413 + </details> 414 + 415 + <div class="resource-note related-resources"> 416 + <p><strong>Related resources:</strong></p> 417 + <ul> 418 + <li> 419 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a> 420 + </li> 421 + <li> 422 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a> 423 + </li> 424 + <li> 425 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Why regular XWiki upgrades matter</a> 426 + </li> 427 + <li> 428 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">How to keep XWiki custom development maintainable across upgrades</a> 429 + </li> 430 + </ul> 431 + </div> 432 + 196 196 <div class="resource-cta"> 197 197 <h3>Need an XWiki security review?</h3> 198 198 <p> ... ... @@ -209,5 +209,54 @@ 209 209 </div> 210 210 </section> 211 211 449 + <script type="application/ld+json"> 450 + { 451 + "@context": "https://schema.org", 452 + "@type": "FAQPage", 453 + "mainEntity": [ 454 + { 455 + "@type": "Question", 456 + "name": "What should an XWiki security review include?", 457 + "acceptedAnswer": { 458 + "@type": "Answer", 459 + "text": "An XWiki security review should include the installed XWiki version, upgrade path, access rights, groups, authentication setup, installed extensions, custom code, infrastructure, backups, restore expectations and operational procedures." 460 + } 461 + }, 462 + { 463 + "@type": "Question", 464 + "name": "Is an updated XWiki instance automatically secure?", 465 + "acceptedAnswer": { 466 + "@type": "Answer", 467 + "text": "No. Updating XWiki is important, but security also depends on permissions, authentication, extensions, custom code, infrastructure configuration, backups and how the instance is maintained." 468 + } 469 + }, 470 + { 471 + "@type": "Question", 472 + "name": "Does SSO solve XWiki access control?", 473 + "acceptedAnswer": { 474 + "@type": "Answer", 475 + "text": "No. SSO helps authenticate users, but access control still depends on XWiki groups, inherited permissions, page-level rights and administrative privileges." 476 + } 477 + }, 478 + { 479 + "@type": "Question", 480 + "name": "Why should custom code be reviewed in XWiki?", 481 + "acceptedAnswer": { 482 + "@type": "Answer", 483 + "text": "Custom scripts, templates, macros, UI extensions and Java components can affect permissions, workflows, rendering, integrations and upgrade behavior. They should be identified, documented and tested." 484 + } 485 + }, 486 + { 487 + "@type": "Question", 488 + "name": "When should an XWiki security review be done?", 489 + "acceptedAnswer": { 490 + "@type": "Answer", 491 + "text": "A review is useful before a major upgrade, after years of organic growth, after authentication changes, before exposing the wiki more broadly, or when the instance becomes business-critical." 492 + } 493 + } 494 + ] 495 + } 496 + </script> 497 + 212 212 {{/html}} 213 213 {{/velocity}}
- xwiki-security-review.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.3 MB - Content