Hello everyone,
The following versions of Totara Learn have now been released:
- Release Evergreen
- Release 12.17
- Release 11.26
- Release 10.32
- Release 9.43
- Release 2.9.51
- Release 2.7.58
- Release 2.6.75
- Release 2.5.80
- Release 2.4.75
- Release 2.2.76
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- Mark Ward at Learning Pool - TL-5081
- Sergey Vidusov at Androgogic - TL-24779
Kind regards
Sam Hemelryk
Release Evergreen (29th April 2020):
Key: + Evergreen only Security issues: TL-23040 Added a check to the security overview report for poorly configured Oauth 2 issuers A new check has been added to the security overview report that warns the user if there are OAuth 2 issuers configured to not verify users email addresses. The warning is displayed as critical if in addition to this the site has been configured to permit users to share email addresses. TL-24490 Shibboleth attributes are now validated against a blacklist of common $_SERVER variables Prior to this change Shibboleth attribute mapping could access any variables stored in $_SERVER, allowing for malicious configurations to be created. All user attributes are now validated to ensure that they are not in a list of commonly available $_SERVER variables that do not belong to Shibboleth. TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. TL-24618 Backported MDL-67861: IP addresses can be spoofed using X-Forwarded-For If your server is behind multiple reverse proxies that append to the X-Forwarded-For header then you will need to specify a comma separated list of ip addresses or subnets of the reverse proxies to be ignored in order to find the users correct IP address. New features: TL-5081 + Added a new 'Program Exceptions' report source TL-24660 + Added a new 'Certification Exceptions' report source Performance improvements: TL-24573 Improved performance of lesson status filter in SCORM reports TL-24574 Changed type of SCORM attempts filter to a number filter to improve performance by avoiding extra database calls Improvements: TL-5629 + Added temporary manager and expiry date to HR Import Job Assignment element As part of this the pre-existing Job Assignment import field 'managerjobassignmentidnumber' has been renamed to 'managerjaidnumber'. NOTE: CVS or Database sources that do not have field mappings will require the source field name to be updated. TL-22533 Improved the accessibility of PDF exports generated by report builder The improvements made include ensuring the table uses correct markup, contains a caption, row and column headers, and improving the use of heading tags. TL-23015 Improved accessibility of the full report link in the 'Report graph' block TL-23991 Improved the use of wai-aria roles within the primary navigation template TL-24173 Updated aria roles of notifications to more accurately reflect their importance TL-24433 Improved confirmation dialog information when cloning audiences TL-24555 The Redis cache store now warns against changing the serializer setting when in use Added a new warning to the Redis cache store configuration to warn administrators that the serializer setting must not be changed if there is any data in the cache already TL-24643 Improved the calculation of months when displaying relative date information Previously, to calculate relative date in months (e.g. "A month ago", "4 months ago", etc.) an average number of days per month – 30.5 days – was used in the calculations. As a result, shorter months like February did not always produce the correct outcome. This has now been changed to use date difference which returns more accurate results. TL-24676 Added support for hiding of Totara forms elements based on 'value in array' and 'value not in array' conditions TL-24825 CLI script admin/cli/cfg.php now logs all changes so that incorrect changes can be identified later Bug fixes: TL-17294 Fixed a reference to the wrong language string within the "Alerts" block TL-18762 Learning plan comments now correctly respect the site wide setting to disable comments TL-23157 + Fixed inconsistent sorting of enrolment methods on the course enrolment page TL-23459 Made sure Quiz activity takes passing grade requirement into account when restoring from course backups made with Totara 2.7 or earlier TL-24450 Prevented markup from showing in the course activity grouping toggle's alt text When the grouping was toggled the name of the activity contained a span tag. This is now correctly stripped out. TL-24546 Improved the JavaScript validation for required user profile checkbox fields TL-24558 Clarified seminar 'Add via list of IDs' error message When one or more user IDs in a list of potential seminar attendees cannot be found, none of the attendees are signed up to the seminar. The error message displayed when this happens has been updated to make that clear. TL-24624 Ensured that attendees created via seminar direct enrolment are always enrolled Previously, when attendees enrolled themselves on a course by signing up to a seminar that required 'Manager and Administrative' approval, and the seminar was already at capacity, the attendees would be added to the waitlist on approval, but not enrolled on the course. This patch makes sure that they are enrolled when their attendance is approved, even if they are added to a waitlist. TL-24640 Clarified 'Send later' options for seminar notifications Previously, the options for sending a seminar notification later were 'before start of session', 'after end of event', and 'before registration closes'. The 'before start of session' string was accidentally left unchanged when sessions became seminar events in Totara 9. The option labels have been updated to make it clear when notifications will be sent. The new options are: * before event (opening session start time) * after event (closing session end time) * before end of Sign-up period (cut-off point) The logic driving the notifications has not changed, only the strings for the labels. TL-24659 Added redirect to fix seminar manager approval links which were using the old endpoint The mod/facetoface/attendees.php endpoint used by managers to approve or deny seminar attendance was moved to mod/facetoface/attendees/approval.php in Totara 12 without a redirect. This caused links in any notifications generated before upgrade to lead to a page that no longer exists. A redirect has been added to ensure that actions in old seminar notifications continue to work. TL-24687 Fixed completion date content filter not showing for course completion history report TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. TL-24781 Fixed missing language string in course upload sanity check error API changes: TL-22910 Send filename* instead of filename in the Content-Disposition response header This patch will particularly resolve the file name corruption (mojibake) when downloading a file with name containing non-ASCII characters on Microsoft Edge 18 or older, by sending the filename* field introduced in RFC 6266. On the other hand, the filename field (without asterisk) is no longer sent to prevent a browser bug in Apple Safari. TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade Contributions: * Mark Ward at Learning Pool - TL-5081 * Sergey Vidusov at Androgogic - TL-24779
Release 12.17 (29th April 2020):
Security issues: TL-23040 Added a check to the security overview report for poorly configured Oauth 2 issuers A new check has been added to the security overview report that warns the user if there are OAuth 2 issuers configured to not verify users email addresses. The warning is displayed as critical if in addition to this the site has been configured to permit users to share email addresses. TL-24490 Shibboleth attributes are now validated against a blacklist of common $_SERVER variables Prior to this change Shibboleth attribute mapping could access any variables stored in $_SERVER, allowing for malicious configurations to be created. All user attributes are now validated to ensure that they are not in a list of commonly available $_SERVER variables that do not belong to Shibboleth. TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. TL-24618 Backported MDL-67861: IP addresses can be spoofed using X-Forwarded-For If your server is behind multiple reverse proxies that append to the X-Forwarded-For header then you will need to specify a comma separated list of ip addresses or subnets of the reverse proxies to be ignored in order to find the users correct IP address. Performance improvements: TL-24573 Improved performance of lesson status filter in SCORM reports TL-24574 Changed type of SCORM attempts filter to a number filter to improve performance by avoiding extra database calls Improvements: TL-22533 Improved the accessibility of PDF exports generated by report builder The improvements made include ensuring the table uses correct markup, contains a caption, row and column headers, and improving the use of heading tags. TL-23015 Improved accessibility of the full report link in the 'Report graph' block TL-23991 Improved the use of wai-aria roles within the primary navigation template TL-24173 Updated aria roles of notifications to more accurately reflect their importance TL-24433 Improved confirmation dialog information when cloning audiences TL-24555 The Redis cache store now warns against changing the serializer setting when in use Added a new warning to the Redis cache store configuration to warn administrators that the serializer setting must not be changed if there is any data in the cache already TL-24643 Improved the calculation of months when displaying relative date information Previously, to calculate relative date in months (e.g. "A month ago", "4 months ago", etc.) an average number of days per month – 30.5 days – was used in the calculations. As a result, shorter months like February did not always produce the correct outcome. This has now been changed to use date difference which returns more accurate results. TL-24676 Added support for hiding of Totara forms elements based on 'value in array' and 'value not in array' conditions TL-24825 CLI script admin/cli/cfg.php now logs all changes so that incorrect changes can be identified later Bug fixes: TL-17294 Fixed a reference to the wrong language string within the "Alerts" block TL-18762 Learning plan comments now correctly respect the site wide setting to disable comments TL-23459 Made sure Quiz activity takes passing grade requirement into account when restoring from course backups made with Totara 2.7 or earlier TL-24450 Prevented markup from showing in the course activity grouping toggle's alt text When the grouping was toggled the name of the activity contained a span tag. This is now correctly stripped out. TL-24546 Improved the JavaScript validation for required user profile checkbox fields TL-24558 Clarified seminar 'Add via list of IDs' error message When one or more user IDs in a list of potential seminar attendees cannot be found, none of the attendees are signed up to the seminar. The error message displayed when this happens has been updated to make that clear. TL-24624 Ensured that attendees created via seminar direct enrolment are always enrolled Previously, when attendees enrolled themselves on a course by signing up to a seminar that required 'Manager and Administrative' approval, and the seminar was already at capacity, the attendees would be added to the waitlist on approval, but not enrolled on the course. This patch makes sure that they are enrolled when their attendance is approved, even if they are added to a waitlist. TL-24640 Clarified 'Send later' options for seminar notifications Previously, the options for sending a seminar notification later were 'before start of session', 'after end of event', and 'before registration closes'. The 'before start of session' string was accidentally left unchanged when sessions became seminar events in Totara 9. The option labels have been updated to make it clear when notifications will be sent. The new options are: * before event (opening session start time) * after event (closing session end time) * before end of Sign-up period (cut-off point) The logic driving the notifications has not changed, only the strings for the labels. TL-24659 Added redirect to fix seminar manager approval links which were using the old endpoint The mod/facetoface/attendees.php endpoint used by managers to approve or deny seminar attendance was moved to mod/facetoface/attendees/approval.php in Totara 12 without a redirect. This caused links in any notifications generated before upgrade to lead to a page that no longer exists. A redirect has been added to ensure that actions in old seminar notifications continue to work. TL-24687 Fixed completion date content filter not showing for course completion history report TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. TL-24781 Fixed missing language string in course upload sanity check error API changes: TL-22910 Send filename* instead of filename in the Content-Disposition response header This patch will particularly resolve the file name corruption (mojibake) when downloading a file with name containing non-ASCII characters on Microsoft Edge 18 or older, by sending the filename* field introduced in RFC 6266. On the other hand, the filename field (without asterisk) is no longer sent to prevent a browser bug in Apple Safari. TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade Contributions: * Sergey Vidusov at Androgogic - TL-24779
Release 11.26 (29th April 2020):
Security issues: TL-23040 Added a check to the security overview report for poorly configured Oauth 2 issuers A new check has been added to the security overview report that warns the user if there are OAuth 2 issuers configured to not verify users email addresses. The warning is displayed as critical if in addition to this the site has been configured to permit users to share email addresses. TL-24490 Shibboleth attributes are now validated against a blacklist of common $_SERVER variables Prior to this change Shibboleth attribute mapping could access any variables stored in $_SERVER, allowing for malicious configurations to be created. All user attributes are now validated to ensure that they are not in a list of commonly available $_SERVER variables that do not belong to Shibboleth. TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. TL-24618 Backported MDL-67861: IP addresses can be spoofed using X-Forwarded-For If your server is behind multiple reverse proxies that append to the X-Forwarded-For header then you will need to specify a comma separated list of ip addresses or subnets of the reverse proxies to be ignored in order to find the users correct IP address. Improvements: TL-24433 Improved confirmation dialog information when cloning audiences TL-24643 Improved the calculation of months when displaying relative date information Previously, to calculate relative date in months (e.g. "A month ago", "4 months ago", etc.) an average number of days per month – 30.5 days – was used in the calculations. As a result, shorter months like February did not always produce the correct outcome. This has now been changed to use date difference which returns more accurate results. Bug fixes: TL-17294 Fixed a reference to the wrong language string within the "Alerts" block TL-18762 Learning plan comments now correctly respect the site wide setting to disable comments TL-23459 Made sure Quiz activity takes passing grade requirement into account when restoring from course backups made with Totara 2.7 or earlier TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. API changes: TL-22910 Send filename* instead of filename in the Content-Disposition response header This patch will particularly resolve the file name corruption (mojibake) when downloading a file with name containing non-ASCII characters on Microsoft Edge 18 or older, by sending the filename* field introduced in RFC 6266. On the other hand, the filename field (without asterisk) is no longer sent to prevent a browser bug in Apple Safari. TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade Contributions: * Sergey Vidusov at Androgogic - TL-24779
Release 10.32 (29th April 2020):
Security issues: TL-24490 Shibboleth attributes are now validated against a blacklist of common $_SERVER variables Prior to this change Shibboleth attribute mapping could access any variables stored in $_SERVER, allowing for malicious configurations to be created. All user attributes are now validated to ensure that they are not in a list of commonly available $_SERVER variables that do not belong to Shibboleth. TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. TL-24618 Backported MDL-67861: IP addresses can be spoofed using X-Forwarded-For If your server is behind multiple reverse proxies that append to the X-Forwarded-For header then you will need to specify a comma separated list of ip addresses or subnets of the reverse proxies to be ignored in order to find the users correct IP address. Improvements: TL-24518 Removed redundant parameter from the full text search support lang string Bug fixes: TL-23459 Made sure Quiz activity takes passing grade requirement into account when restoring from course backups made with Totara 2.7 or earlier TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. API changes: TL-22910 Send filename* instead of filename in the Content-Disposition response header This patch will particularly resolve the file name corruption (mojibake) when downloading a file with name containing non-ASCII characters on Microsoft Edge 18 or older, by sending the filename* field introduced in RFC 6266. On the other hand, the filename field (without asterisk) is no longer sent to prevent a browser bug in Apple Safari. TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade Contributions: * Sergey Vidusov at Androgogic - TL-24779
Release 9.43 (29th April 2020):
Security issues: TL-24490 Shibboleth attributes are now validated against a blacklist of common $_SERVER variables Prior to this change Shibboleth attribute mapping could access any variables stored in $_SERVER, allowing for malicious configurations to be created. All user attributes are now validated to ensure that they are not in a list of commonly available $_SERVER variables that do not belong to Shibboleth. TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. TL-24618 Backported MDL-67861: IP addresses can be spoofed using X-Forwarded-For If your server is behind multiple reverse proxies that append to the X-Forwarded-For header then you will need to specify a comma separated list of ip addresses or subnets of the reverse proxies to be ignored in order to find the users correct IP address. Bug fixes: TL-23459 Made sure Quiz activity takes passing grade requirement into account when restoring from course backups made with Totara 2.7 or earlier TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. API changes: TL-22910 Send filename* instead of filename in the Content-Disposition response header This patch will particularly resolve the file name corruption (mojibake) when downloading a file with name containing non-ASCII characters on Microsoft Edge 18 or older, by sending the filename* field introduced in RFC 6266. On the other hand, the filename field (without asterisk) is no longer sent to prevent a browser bug in Apple Safari. Contributions: * Sergey Vidusov at Androgogic - TL-24779
Release 2.9.51 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. Bug fixes: TL-24779 Ensured "inlist" type audience rule SQL parameters use unique names This occurred when multiple inlist rules were added to an audience and were using the IS EMPTY operator. If encountered a fatal error was produced. The inlist rule has now been updated to ensure it uses unique parameter names. Contributions: * Sergey Vidusov at Androgogic - TL-24779
Release 2.7.58 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor.
Release 2.6.75 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor.
Release 2.5.80 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor.
Release 2.4.75 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. API changes: TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade
Release 2.2.76 (29th April 2020):
Security issues: TL-24587 HTML block no longer allows self-XSS Prior to this change, users could perform XSS attacks on themselves by adding an HTML block when customising their dashboard, giving it malicious content, saving it, and then editing it again. When customised, a dashboard is only visible to the owning user. However admins could still experience the malicious block using the login as functionality. This has now been fixed, and when editing an HTML block on user pages the content is cleaned before it is loaded into the editor. API changes: TL-24579 No longer warn via debugging if the selected theme is not available during installation and upgrade