Changes for page What an XWiki Security Review Should Actually Include
Last modified by Alex Cotiuga on 2026/07/13 06:44
From version 1.1
edited by Alex Cotiuga
on 2026/05/26 07:41
on 2026/05/26 07:41
Change comment:
There is no comment for this version
To version 4.5
edited by Alex Cotiuga
on 2026/07/13 06:44
on 2026/07/13 06:44
Change comment:
There is no comment for this version
Summary
-
Page properties (4 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
-
Objects (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - xwiki-security-review1 +What an XWiki Security Review Should Actually Include - Default language
-
... ... @@ -1,1 +1,0 @@ 1 -en - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - false1 +true - Content
-
... ... @@ -1,0 +1,503 @@ 1 +{{velocity}} 2 +#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 +{{html clean="false"}} 4 + 5 + <section class="resource-header" aria-labelledby="hero-title"> 6 + <div class="container"> 7 + <div class="text-center"> 8 + <div class="hero-kicker"> 9 + <i class="fa fa-shield" aria-hidden="true"></i> 10 + XWiki security review 11 + </div> 12 + </div> 13 + 14 + <h1 id="hero-title">What an XWiki security review should actually include</h1> 15 + 16 + <p class="resource-summary"> 17 + A working XWiki instance is not automatically a secure one. A proper review should look at versions, 18 + access rights, authentication, extensions, custom code, infrastructure and operational practices. 19 + </p> 20 + </div> 21 + </section> 22 + 23 + <section class="resource-page"> 24 + <div class="container"> 25 + <div class="resource-layout"> 26 + 27 + <aside class="resource-sidebar" aria-label="Page summary"> 28 + <h4>In this guide</h4> 29 + <ul> 30 + <li><a href="#why-it-matters">Why it matters</a></li> 31 + <li><a href="#quick-self-check">Quick self-check</a></li> 32 + <li><a href="#what-to-review">What to review</a></li> 33 + <li><a href="#common-findings">Common findings</a></li> 34 + <li><a href="#security-checklist">Security checklist</a></li> 35 + <li><a href="#review-output">What the review should produce</a></li> 36 + <li><a href="#readiness-checklist">What to prepare</a></li> 37 + <li><a href="#when-to-review">When to run a review</a></li> 38 + <li><a href="#security-review-faq">FAQ</a></li> 39 + </ul> 40 + </aside> 41 + 42 + <article class="resource-content"> 43 + 44 + <p> 45 + Many XWiki instances continue to work well from a user perspective while slowly accumulating security 46 + and governance risks. Users can still log in, search, edit pages and access documents, but that does not 47 + always mean the instance is properly secured or easy to maintain. 48 + </p> 49 + 50 + <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> 56 + Security risks are often hidden in less visible areas: outdated versions, inherited permissions, 57 + forgotten administrator accounts, overly powerful rights, old extensions, undocumented scripts, 58 + weak fallback access or backup assumptions that were never tested. 59 + </p> 60 + 61 + <div class="resource-note"> 62 + <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> 77 + <strong>The main point:</strong> an XWiki security review should not only check whether the application 78 + is online. It should evaluate the platform, the access model and the operational practices around it. 79 + </p> 80 + </div> 81 + 82 + <h2 id="why-it-matters">Why an XWiki security review matters</h2> 83 + 84 + <p> 85 + XWiki is often used as an internal knowledge base, intranet, documentation platform or controlled 86 + document system. In these cases, the platform may contain sensitive procedures, internal decisions, 87 + customer information, technical documentation, compliance records or business-critical workflows. 88 + </p> 89 + 90 + <p> 91 + The more important the content becomes, the more important it is to understand who can access it, who can 92 + change it, which customizations influence it and how safely the instance can be upgraded or restored. 93 + </p> 94 + 95 + <p> 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. 99 + </p> 100 + 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 + 124 + <h2 id="what-to-review">What should be reviewed</h2> 125 + 126 + <h3>1. Version and upgrade status</h3> 127 + <p> 128 + The current XWiki version should be reviewed together with the target upgrade path, installed extensions 129 + and infrastructure dependencies. An outdated instance is not only a maintenance concern. It can also mean 130 + that security fixes, compatibility improvements and platform hardening are missing. 131 + </p> 132 + 133 + <p> 134 + The review should also check whether upgrades are performed regularly or only when something breaks. 135 + A repeatable upgrade process is part of the security posture of a long-running XWiki instance. 136 + </p> 137 + 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 + 143 + <h3>2. Access rights and permission model</h3> 144 + <p> 145 + XWiki has a powerful access-rights system, but this flexibility needs a clear governance model. A review 146 + should check who has administration rights, who has script or programming rights, whether rights are 147 + assigned through groups, and whether page-level exceptions are still understandable. 148 + </p> 149 + 150 + <p> 151 + It is also important to review inherited rights, public areas, restricted spaces, old groups, inactive 152 + users and sensitive pages. Many permission problems do not come from one obvious mistake, but from years 153 + of small exceptions that nobody reviewed later. 154 + </p> 155 + 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 + 163 + <h3>3. Authentication and identity management</h3> 164 + <p> 165 + Authentication should be reviewed beyond the simple question of whether users can log in. LDAP, Active 166 + Directory, OIDC, SAML, SSO and MFA setups all need to be checked together with group synchronization, 167 + fallback login options, local administrator accounts and recovery procedures. 168 + </p> 169 + 170 + <p> 171 + SSO is useful, but it does not automatically guarantee a clean access model. Authentication confirms who 172 + the user is. Authorization still depends on how XWiki groups and rights are configured. 173 + </p> 174 + 175 + <h3>4. Extensions and custom code</h3> 176 + <p> 177 + Installed extensions, custom applications, Velocity scripts, Groovy scripts, macros, sheets, templates, 178 + UI extensions and Java components are all part of the security and maintenance surface of the instance. 179 + </p> 180 + 181 + <p> 182 + A review should identify what is installed, what is customized, what is still used, what is documented and 183 + what needs special validation during upgrades. Custom code should be tracked, explained and tested, not 184 + discovered accidentally during an incident or a production upgrade. 185 + </p> 186 + 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 + 192 + <h3>5. Configuration, infrastructure and operations</h3> 193 + <p> 194 + The review should also cover the environment around XWiki: HTTPS and reverse proxy configuration, database 195 + access, filesystem and attachment storage, mail configuration, PDF export services, logs, monitoring, 196 + server access and separation between production and staging. 197 + </p> 198 + 199 + <p> 200 + Backups should be reviewed together with restore expectations. A backup strategy is incomplete if nobody 201 + knows what is included, how long recovery would take or whether the restore process has ever been tested. 202 + </p> 203 + 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 + <a class="btn btn-secondary" href="$xwiki.getURL('pricing.WebHome')#common-packages">View review pricing</a> 212 + </div> 213 + 214 + <h2 id="common-findings">Common findings in real XWiki security reviews</h2> 215 + 216 + <p> 217 + In real XWiki instances, security risks are often not caused by one major mistake. They usually come from 218 + configuration decisions that were reasonable at the time but were never reviewed together later. 219 + </p> 220 + 221 + <ul class="resource-checklist"> 222 + <li>Old administrator accounts that are still active.</li> 223 + <li>Script or programming rights granted to users who no longer maintain the platform.</li> 224 + <li>Groups created for old projects that still grant access.</li> 225 + <li>Page-level rights added as exceptions and never documented.</li> 226 + <li>Custom Velocity or Groovy code that is business-critical but undocumented.</li> 227 + <li>Extensions installed years ago without a clear owner or upgrade validation process.</li> 228 + <li>SSO configured correctly for login, but not reviewed together with XWiki groups.</li> 229 + <li>Backup jobs scheduled automatically, but restore expectations never tested.</li> 230 + <li>Production changes performed without a staging or rollback habit.</li> 231 + </ul> 232 + 233 + <h2 id="what-this-is-not">What this review is not</h2> 234 + 235 + <p> 236 + A security review is not a one-click scan and it is not limited to checking the installed XWiki version. 237 + Automated checks can help, but they cannot fully explain why a group has access, whether a custom script is still 238 + needed, or whether a restore procedure would actually work during an incident. 239 + </p> 240 + 241 + <p> 242 + The review should combine technical checks with context: how the wiki is used, which areas are sensitive, which 243 + users administer it, what customizations matter and what the organization expects during an incident or upgrade. 244 + </p> 245 + 246 + <h2 id="security-checklist">XWiki security review checklist</h2> 247 + 248 + <p> 249 + A practical XWiki security review should cover both application-level and operational risks. 250 + The following checklist can be used as a starting point when reviewing a production instance. 251 + </p> 252 + 253 + <ul class="resource-checklist"> 254 + <li>Check the current XWiki version, target version and upgrade path.</li> 255 + <li>Review installed extensions, outdated components and unsupported customizations.</li> 256 + <li>Audit administrator, script and programming rights.</li> 257 + <li>Review groups, inherited permissions and page-level exceptions.</li> 258 + <li>Validate authentication, SSO, MFA, fallback access and administrator recovery options.</li> 259 + <li>Identify custom scripts, templates, macros, UI extensions and Java components.</li> 260 + <li>Review public, internal and restricted areas.</li> 261 + <li>Check infrastructure, HTTPS, reverse proxy, database, filesystem and mail configuration.</li> 262 + <li>Confirm backup coverage, restore expectations and rollback procedures.</li> 263 + <li>Document findings and prioritize remediation actions.</li> 264 + </ul> 265 + 266 + <h2 id="review-output">What the review should produce</h2> 267 + 268 + <p> 269 + A useful security review should not only produce a list of detected problems. It should produce a practical 270 + action plan. Each finding should explain the risk, the affected area, the recommended action and the priority. 271 + </p> 272 + 273 + <p> 274 + Some findings may require immediate action, such as exposed administration rights or unsafe fallback 275 + access. Others may become planned improvements, such as cleaning old groups, documenting custom code, 276 + reviewing extensions or preparing the next upgrade. 277 + </p> 278 + 279 + <div class="resource-note"> 280 + <p> 281 + <strong>A useful review should separate findings by priority:</strong> immediate risks, 282 + planned remediation, maintenance improvements and documentation gaps. This makes the result 283 + easier to act on instead of producing a generic list of observations. 284 + </p> 285 + </div> 286 + 287 + <h3>Example review finding</h3> 288 + 289 + <table class="table table-bordered table-striped"> 290 + <thead> 291 + <tr> 292 + <th>Finding</th> 293 + <th>Risk</th> 294 + <th>Recommended action</th> 295 + <th>Priority</th> 296 + </tr> 297 + </thead> 298 + <tbody> 299 + <tr> 300 + <td>Several users have script rights but are no longer responsible for XWiki administration.</td> 301 + <td>Powerful rights remain active without clear ownership.</td> 302 + <td>Confirm the current need, remove obsolete assignments and document approved technical users.</td> 303 + <td>High</td> 304 + </tr> 305 + <tr> 306 + <td>Backups are scheduled, but the restore process has not been tested recently.</td> 307 + <td>Recovery expectations may be incorrect during an incident.</td> 308 + <td>Document backup coverage and perform a restore validation on a test environment.</td> 309 + <td>Medium</td> 310 + </tr> 311 + </tbody> 312 + </table> 313 + 314 + <p> 315 + The best outcome is a clearer, safer and more maintainable XWiki instance: one where administrators 316 + understand the access model, critical features are documented and future upgrades can be planned with 317 + fewer surprises. 318 + </p> 319 + 320 + <h2 id="readiness-checklist">XWiki security review readiness checklist</h2> 321 + 322 + <p> 323 + Before starting a security review, prepare the following information. This makes the review faster and helps 324 + identify risks more clearly. 325 + </p> 326 + 327 + <ul class="resource-checklist"> 328 + <li>Current XWiki version and target upgrade version, if an upgrade is planned.</li> 329 + <li>List of installed extensions and known custom applications.</li> 330 + <li>Authentication method: local users, LDAP, OIDC, SAML, SSO or MFA.</li> 331 + <li>Known restricted spaces, confidential areas or public-facing pages.</li> 332 + <li>List of technical administrators and users with powerful rights.</li> 333 + <li>Known custom scripts, templates, macros, UI extensions or Java components.</li> 334 + <li>Backup location, frequency and last restore test, if known.</li> 335 + <li>Staging or test environment availability.</li> 336 + </ul> 337 + 338 + <h2 id="when-to-review">When should an XWiki security review be done?</h2> 339 + 340 + <p> 341 + A review is especially useful before a major upgrade, after years of organic growth, after an authentication 342 + change, before exposing the instance more broadly, after a migration, or when the wiki becomes more 343 + business-critical than it was when first installed. 344 + </p> 345 + 346 + <p> 347 + It is also useful when administration responsibilities change. A new team should not have to guess how 348 + permissions, extensions, customizations and recovery procedures were configured years earlier. 349 + </p> 350 + 351 + <div class="resource-note related-resources"> 352 + <p><strong>Security review series:</strong></p> 353 + <ul> 354 + <li> 355 + <a href="$xwiki.getURL('resources.xwiki-security-review')">What an XWiki security review should actually include</a> 356 + </li> 357 + <li> 358 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a> 359 + </li> 360 + <li> 361 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a> 362 + </li> 363 + </ul> 364 + <p> 365 + Future topics will cover authentication and access control, script and programming rights, 366 + backup validation, extension review and operational practices. 367 + </p> 368 + </div> 369 + 370 + <h2 id="security-review-faq">XWiki security review FAQ</h2> 371 + 372 + <details class="resource-faq-item" open> 373 + <summary>What should an XWiki security review include?</summary> 374 + <p> 375 + An XWiki security review should include the installed XWiki version, upgrade path, 376 + access rights, groups, authentication setup, installed extensions, custom code, 377 + infrastructure, backups, restore expectations and operational procedures. 378 + </p> 379 + </details> 380 + 381 + <details class="resource-faq-item"> 382 + <summary>Is an updated XWiki instance automatically secure?</summary> 383 + <p> 384 + No. Updating XWiki is important, but security also depends on permissions, 385 + authentication, extensions, custom code, infrastructure configuration, backups 386 + and how the instance is maintained. 387 + </p> 388 + </details> 389 + 390 + <details class="resource-faq-item"> 391 + <summary>Does SSO solve XWiki access control?</summary> 392 + <p> 393 + No. SSO helps authenticate users, but access control still depends on XWiki groups, 394 + inherited permissions, page-level rights and administrative privileges. 395 + </p> 396 + </details> 397 + 398 + <details class="resource-faq-item"> 399 + <summary>Why should custom code be reviewed?</summary> 400 + <p> 401 + Custom scripts, templates, macros, UI extensions and Java components can affect 402 + permissions, workflows, rendering, integrations and upgrade behavior. They should 403 + be identified, documented and tested. 404 + </p> 405 + </details> 406 + 407 + <details class="resource-faq-item"> 408 + <summary>When should an XWiki security review be done?</summary> 409 + <p> 410 + A review is useful before a major upgrade, after years of organic growth, after 411 + authentication changes, before exposing the wiki more broadly, or when the instance 412 + becomes business-critical. 413 + </p> 414 + </details> 415 + 416 + <div class="resource-note related-resources"> 417 + <p><strong>Related resources:</strong></p> 418 + <ul> 419 + <li> 420 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a> 421 + </li> 422 + <li> 423 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a> 424 + </li> 425 + <li> 426 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Why regular XWiki upgrades matter</a> 427 + </li> 428 + <li> 429 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">How to keep XWiki custom development maintainable across upgrades</a> 430 + </li> 431 + </ul> 432 + </div> 433 + </article> 434 + 435 + </div> 436 + </div> 437 + </section> 438 + 439 + <section class="cta-section" aria-labelledby="xwiki-security-review-cta-title"> 440 + <div class="container"> 441 + <div class="cta-panel"> 442 + <h2 id="xwiki-security-review-cta-title">Need an XWiki security review?</h2> 443 + <p> 444 + If your XWiki instance has grown over time, contains sensitive content, uses custom code or depends on 445 + SSO, extensions and business-critical workflows, a structured review can help identify risks and define 446 + the safest next steps. 447 + </p> 448 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a security review</a> 449 + </div> 450 + </div> 451 + </section> 452 + 453 + <script type="application/ld+json"> 454 + { 455 + "@context": "https://schema.org", 456 + "@type": "FAQPage", 457 + "mainEntity": [ 458 + { 459 + "@type": "Question", 460 + "name": "What should an XWiki security review include?", 461 + "acceptedAnswer": { 462 + "@type": "Answer", 463 + "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." 464 + } 465 + }, 466 + { 467 + "@type": "Question", 468 + "name": "Is an updated XWiki instance automatically secure?", 469 + "acceptedAnswer": { 470 + "@type": "Answer", 471 + "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." 472 + } 473 + }, 474 + { 475 + "@type": "Question", 476 + "name": "Does SSO solve XWiki access control?", 477 + "acceptedAnswer": { 478 + "@type": "Answer", 479 + "text": "No. SSO helps authenticate users, but access control still depends on XWiki groups, inherited permissions, page-level rights and administrative privileges." 480 + } 481 + }, 482 + { 483 + "@type": "Question", 484 + "name": "Why should custom code be reviewed in XWiki?", 485 + "acceptedAnswer": { 486 + "@type": "Answer", 487 + "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." 488 + } 489 + }, 490 + { 491 + "@type": "Question", 492 + "name": "When should an XWiki security review be done?", 493 + "acceptedAnswer": { 494 + "@type": "Answer", 495 + "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." 496 + } 497 + } 498 + ] 499 + } 500 + </script> 501 + 502 +{{/html}} 503 +{{/velocity}}
- xwiki-security-review.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.3 MB - Content
- Agnease.Code.SEODetailsClass[0]
-
- metaDescription
-
... ... @@ -1,0 +1,1 @@ 1 +Learn what an XWiki security review should include: version status, access rights, authentication, extensions, custom code, infrastructure, backups and operational practices. - metaTitle
-
... ... @@ -1,0 +1,1 @@ 1 +What an XWiki Security Review Should Actually Include | Agnease